Menu
Coddy logo textTech

NTILE関数

CoddyのSQLジャーニー「基礎」セクションの一部。レッスン 67/72。

NTILE(n)は、行をほぼ均等なn個の分割に分けて番号を付けます。これはパフォーマンスの向上によく使用されます。大量のデータを一度に送信するのは適切でない場合があるため、この関数を使うと一度により小さな分割を送信できます。

例:

idlevel
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

次の結果が返されます:

idlevelpieces
141
241
352
462
573
673

3つのpiecesを取得しました:piece 1にはlevel 4、piece 2にはlevel 5とlevel 6、piece 3にはlevel 7があります。
行数がnで割り切れない場合、NTILEは行をできる限り均等に分配し、より大きなグループを先に配置します。たとえば、9行とNTILE(4)がある場合、分配は次のようになります:

  • グループ 1: 3 行
  • グループ 2: 2 行
  • グループ 3: 2 行
  • グループ 4: 2 行

これにより、どのグループも他のグループと行数が1行を超えて異なることはなく、余分な行は番号の小さいグループから先に分配されます。

challenge icon

チャレンジ

簡単

利用可能なテーブルとカラム:

  • creaturescreature_namepreferencehas_legs('YES' または 'NO' を含む)

このチャレンジでは、特別な相手を見つけたい生き物たちを扱います。彼らが相性のよい相手を見つけられるよう手助けしましょう。

各生き物には、数値で表される好みがあります。両方の生き物の数値が十分に近ければ、相性のよい組み合わせになる可能性があります。

preference の値に基づいて生き物を3つのグループに分けます。ただし、脚がある生き物(has_legs = 'YES')だけを対象にします。creature_namepreference、および group_number(1、2、または3)を返してください。結果は preference の昇順で並べ替えます。

自分で試してみよう

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド