Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ チャレンジ:ウィンドウ関数の使用 | トリガー、ウィンドウ関数、DCL
SQL最適化とクエリ機能
セクション 3.  4
single

single

bookチャレンジ:ウィンドウ関数の使用

メニューを表示するにはスワイプしてください

各ユーザーがどのクラスに属するかを、アカウント残高に基づいてテーブルに追加することを想定します。

クラスの判定基準は以下の通りです:

  • アカウント残高が下位25%にある場合、第4クラスに属する;
  • アカウント残高が25%から50%の間にある場合、第3クラスに属する;
  • アカウント残高が50%から75%の間にある場合、第2クラスに属する;
  • アカウント残高が上位25%にある場合、第1クラスに属する。

この問題を解決するために、NTILE()というウィンドウ関数を使用できます。 NTILE()関数は、順序付けされたパーティション内の行を指定した数のほぼ等しいグループ(タイル)に分割するウィンドウ関数です。 各行に対して、その行が属するグループ番号を1から割り当てます。

NTILE(num_buckets) OVER (
    ORDER BY sort_column
)
Note
ノート

この例では、PARTITION BY関数を結果セット全体に適用したいため、NTILE()句を指定する必要はありません。 ORDER BY句のみで十分であり、これは行がどのような順序でタイルに分配されるかを定義し、テーブル全体の給与の並び順に基づいてグループ分けが行われます。 特定のグループ(例:部門)ごとにタイルを計算したい場合は、PARTITION BYを使用します。

タスク

スワイプしてコーディングを開始

NTILE() 関数を使用して、各口座保有者に 1 から 4 までのクラスを割り当ててください。クラス 1 には最も高い残高が含まれます。

  • クラス数として 4 を使用します。
  • balance 列で降順に並べ替えます。
  • 結果には account_holderbalance、およびその class を表示してください。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt