Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ SQLにおける集計とグループ化 | データ操作
Databricks基礎:初心者ガイド

SQLにおける集計とグループ化

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

Note
定義

SQL 集約は、GROUP BY 句を使用して生データを集計行に整理。SUM()AVG()COUNT() などの関数を利用することで、数百万行のデータを SQL セル内で直接ビジネス指標に変換。

多くの場合、SQL はデータを要約するための最も自然な言語。構文は非常に読みやすく、論理的な流れに従う:カテゴリの選択、計算方法の指定、グループの定義。本章では、以前作成した一時ビューを使用し、Python で行ったのと同じ集約処理を SQL のシンプルさで実施。

GROUP BY 句

SQL では、「数学的に集約」されていないすべての列を、クエリの最後にある GROUP BY 文に含める必要。これにより、SQL エンジンがデータの分割方法を正確に認識。

SELECT cut, COUNT(*) 
FROM diamond_view
GROUP BY cut

組み込み集計関数の利用

SQL では、数値列に対して計算を行うための標準関数がいくつか用意されています:

  • SUM(): 列内のすべての値の合計
  • AVG(): 平均値の計算
  • MIN() / MAX(): 最小値または最大値の取得
  • COUNT(): 行数の取得
%sql
SELECT 
  cut, 
  SUM(x), 
  AVG(y)
FROM diamond_view
GROUP BY cut

プロフェッショナルなレポートのためのエイリアス設定

デフォルトでは、SQLは結果の列名を sum(Total_Profit) のように表示します。ビジネスダッシュボード向けに出力をより分かりやすくするには、AS キーワードを使って列名を説明的なものに変更します。

%sql
SELECT 
  cut, 
  SUM(x) AS Total_Length,
  MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut

集計データのフィルタリング:HAVING句

よくある間違いとして、集計結果を WHERE でフィルタしようとすることがあります。SQLでは、WHERE はグループ化前の個々の行をフィルタします。合計後の結果(例:利益が1,000,000ドルを超える地域のみ表示したい場合)をフィルタしたい場合は、HAVING 句を使用する必要があります。

%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000

集計結果の並べ替え

分析結果を際立たせるためには、常に ORDER BY を使用。これにより、最も利益の高い地域などをテーブルの上位に表示することが可能。

%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
question mark

SUM()AVG()などの集約関数を使用してサマリー行を作成する際に必要なSQL句はどれですか?

正しい答えを選んでください

すべて明確でしたか?

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

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

セクション 4.  7

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 4.  7
some-alt