高度なデータ分析パターン

Databricks SQL 入門

Kevin Barlow

Data Manager

モチベーション

レイクハウス図 - 分析

Databricks SQL 入門

サブクエリ

  • SQLクエリの「ネスト」によって実現します
    • ネストされたクエリは新しい「テーブル」とみなされます
    • 実質的にビューの作成と似ています
  • さまざまな用途に適しています
    • 別のクエリの結果を取得
    • 複雑なクエリを簡潔にする
    • クエリ内で集計を行う
SELECT store, totalRev, product
FROM (
    SELECT count(*) as count,
          sum(revenue) as totalRev,
          min(price) as minPrice,
          max(units) as maxUnits,
          region,
          store,
          product
      FROM sales 
      GROUP BY region, store, product
) q
Databricks SQL 入門

ウィンドウ関数

  • SQL関数と手法の一種です
  • 特定の行範囲にわたって計算を実行します
    • 行同士が何らかの関連を持っています
  • 例:
    • 時間範囲に基づく指標の計算
    • 連続する行にわたる変化の計算
    • 複数の次元にわたる計算
SELECT name,
       dept,
       RANK() OVER 
           (PARTITION BY dept 
         ORDER BY salary) AS rank
  FROM employees;
name dept salary rank
Lisa Sales 10000 1
Alex Sales 30000 2
Fred Engineering 21000 1
Tom Engineering 23000 2
Databricks SQL 入門

高度な Databricks SQL 関数

RANK()

  • 指定されたパーティション内で行を比較し、各行のランクを計算します
SELECT a,
       b,
       RANK() OVER(PARTITION BY a ORDER BY b DESC),
    FROM table_name;
a b rank
A1 3 1
A1 1 3
A1 2 2
A2 1 1

LAG() and LEAD()

  • 行の前(LAG())または後(LEAD())の値を返します
SELECT a,
       b,
       LAG(b) OVER (PARTITION BY a ORDER BY b)
    FROM table_name;
a b lag
A1 3 NULL
A1 1 3
A1 2 1
A2 1 NULL
Databricks SQL 入門

練習しましょう!

Databricks SQL 入門

Preparing Video For Download...