メトリクスとは
メトリクスは Cube の Record 型上のフィールドとして利用できる集計関数です。GraphQL クエリ内で直接統計を計算でき、後処理が不要になります。ディメンションフィールドとメトリクスフィールドを同時に選ぶと、選んだディメンションでグループ化し、各グループのメトリクスを計算します。 サポートされるメトリクス:Record 型上のメトリクスフィールド
メトリクスは各 Cube の Record 型のトップレベルフィールドとして現れます。すべての Cube がすべてのメトリクスをサポートするわけではなく、Cube 定義によります。of パラメータ
sum、avg、min、max、uniq には、どのディメンションを集計するかを指定する of パラメータが必要です。of の値は Cube ごとに生成される列挙で、ディメンションパスの命名規則に従います。
例: DEX 別の買いボリューム合計
count — 行のカウント
of なしの count は、各グループの行の総数を数えます(COUNT(*) に相当):
uniq — ユニーク数
uniq は SQL の COUNT(DISTINCT column) に対応します。ディメンションのユニーク値の個数を数えるときに使います:
selectWhere — HAVING 相当のフィルター
selectWhere は、SQL の HAVING に似て、集計結果に対するフィルターをかけます。グループ化と集計の後に適用され、メトリクスの値に基づいてグループを絞り込めます。
selectWhere の値は文字列で渡す必要があります(例: "100" であり 100 ではない)。内部では数値として解釈されます。selectWhere で使える比較演算子:
実践例: 上位トレーダー
本日のトークンについて、取引回数が多い上位 10 ウォレットを、買いボリューム合計とユニーク取引数とともに取得:複数メトリクスの併用
1 つのクエリで複数のメトリクスフィールドを選べます:メトリクスと事前集計 Cube の使い分け
よくある質問: DWD Cube でメトリクスを使うべきか、DWM/DWS Cube を直接問い合わせるべきか?
判断ガイド
ローソク足チャートが必要
ローソク足チャートが必要
Pairs(DWM)を使います。分ごとの open/high/low/close/volume が既に計算済みです。DEXTrades を自前で集計する必要はありません。
トークンごとの買い/売り件数が必要
トークンごとの買い/売り件数が必要
Tokens(DWM)を使います。分ごとの取引数、ボリューム、ユニークトレーダーが事前集計されています。
トークン保有者ランキングが必要
トークン保有者ランキングが必要
TokenHolders(DWS)を使います。保有者ごとの最新残高が事前計算されており、BalanceUpdates を集計するよりはるかに速いです。
DEX 別のカスタムボリューム内訳が必要
DEX 別のカスタムボリューム内訳が必要
Trade.Dex.ProtocolName でグループ化した DEXTrades に count + sum(of: Trade_Buy_Amount) を使います。これ用の事前構築 Cube はないため、DWD メトリクスが適切です。ウォレットのトークン別 PnL が必要
ウォレットのトークン別 PnL が必要
WalletTokenPnL(DWS)を使います。ウォレット–トークンペアごとの買い/売りボリュームと取引数が事前計算されています。
次のステップ
Data Cubes
25 の Cube とフィールド構造を確認します。
クエリ例
メトリクスと集計を使った実例クエリを見ます。

