Skip to main content

orderBy InputObject

各 Cube は {Cube}OrderBy 入力オブジェクトを生成し、ascendingdescending フィールドを持ちます。各フィールドはディメンションパスをアンダースコアでつないだ CompareFields 列挙値を受け取ります:
ネストしたディメンションでは、レベルごとに結合します:
使用例:

よく使う CompareFields の値

GraphQL IDE のオートコンプリートで、Cube ごとに利用可能なすべての CompareFields を確認できます — orderBy: {descending: と入力すると IDE が候補を表示します。

使い方

descending または ascending のどちらか一方に CompareFields の値を指定した orderBy 入力オブジェクトを渡します:
orderBy1 組の方向/フィールドのみ受け付けます。複数列ソートはサポートされず、一度に 1 ディメンションで並べ替えます。

limit 引数

limit 引数は返す行数を制御し、オフセットベースのページネーションをサポートします:

既定値と最大値

各 Cube には limit を省略したときの既定の件数と、最大の上限があります:
要求した count が最大を超える場合、サーバーは黙って最大値に切り詰めます。

オフセットベースのページネーション

offset で結果セットをページングします。パターンは次のとおりです。
  • ページ 1: limit: { count: 50, offset: 0 }
  • ページ 2: limit: { count: 50, offset: 50 }
  • ページ 3: limit: { count: 50, offset: 100 }

例: トークン保有者のページング

ページネーションのヒント

安定した並び順がないと、ページ間で行がずれることがあります。決定的な順序になるよう、常に limitorderBy を組み合わせてください。
大きな offset(例: 50,000 以上)は、DB がスキャンしてスキップするため性能が落ちることがあります。非常に大きなデータセットでは、深くページングするより where でクエリを狭めてください。
1 ページの行数が要求した count より少なければ、データセットの終端に達しています。別法として、事前に総行数を得る count メトリクスフィールドも使えます。

実践例

直近の大口取引

Solana で買い価値が 10,000 ドル超の、直近 10 件の DEX 取引を取得:

OHLC ローソク — 直近 60 分

トークンの 1 分足を時系列で取得:

トップ 50 保有者

USD 残高でソートした上位 50 保有者:

次のステップ

フィルタリング

並び順とフィルターを組み合わせて、精密な分析クエリを構築します。

メトリクスと集計

count、sum、avg、min、max、uniq で並べたデータを集計します。