データ分析
2023/12/07
與田 龍人

BigQueryのQUALIFY句でウィンドウ関数をマスターしよう。

logo_BQ

BigQueryのSQL言語は、データ分析や処理の際に強力なツールです。その中でもQUALIFY句は、ウィンドウ関数とともに使われ、特定の条件を満たす行を簡潔に抽出するための重要な機能です。この記事では、QUALIFY句の基本的な使い方といくつかの事例を紹介します。

はじめに

BigQueryのSQL言語は、データ分析や処理の際に強力なツールです。その中でもQUALIFY句は、ウィンドウ関数とともに使われ、特定の条件を満たす行を簡潔に抽出するための重要な機能です。この記事では、QUALIFY句の基本的な使い方といくつかの事例を紹介します。

基本的な使い方

QUALIFY句は、一般的にOVER句と組み合わせて使用されます。


例えば、以下のクエリでは、売上データ(sales_data)から各製品カテゴリごとの累積売上が特定の値を超える行を選択しています。



SELECT
product_category,
sale_date,
revenue,
SUM(revenue) OVER (PARTITION BY product_category ORDER BY sale_date) AS cumulative_revenue
FROM
sales_data
QUALIFY cumulative_revenue > 10000;


売上データ(sales_data)



出力結果



事例1: トレンド分析

顧客の購買履歴データ(purchase_history)を分析する場合、購買頻度がある閾値を超える行だけを抽出したいことがあります。QUALIFY句を使用することで、簡潔なクエリでこの情報を得ることができます。



SELECT
customer_id,
purchase_date,
product_id,
COUNT(product_id) OVER (PARTITION BY customer_id ORDER BY purchase_date) AS purchase_count
FROM
purchase_history
QUALIFY purchase_count > 3;


購買履歴データ(purchase_history



出力結果


事例2: ランキングと順位付け

製品の売上データ(product_sale)からランキングを作成する場合、QUALIFY句を使って特定の順位以内の行だけを選択することができます。



SELECT
product_name,
revenue,
RANK() OVER (ORDER BY revenue DESC) AS sales_rank
FROM
product_sale
QUALIFY sales_rank <= 10;


製品の売上データ(product_sale



出力結果


結論

BigQueryのQUALIFY句は、ウィンドウ関数と組み合わせてデータセットから特定の条件を持つ行を抽出するための強力なツールです。これを使うことで、効率的で洗練されたデータ分析クエリを構築できます。是非、これらの事例を元にしてデータ処理の幅を広げてみてください。

New call-to-action