CASE WHEN
是 SQL 語言中的一個條件表達式,它可以在分組統計查詢中應用,用于對數據進行分類和計算
以下是一個使用 CASE WHEN
的分組統計示例。假設我們有一個名為 orders
的表,其中包含以下列:order_id
、customer_id
、order_date
和 amount
。現在,我們想要根據訂單金額將客戶分為三類:小額訂單(<100)、中等訂單(100-500)和大額訂單(>500),并計算每個類別的訂單數量。
SELECT
customer_id,
COUNT(CASE WHEN amount < 100 THEN 1 END) AS small_orders,
COUNT(CASE WHEN amount >= 100 AND amount <= 500 THEN 1 END) AS medium_orders,
COUNT(CASE WHEN amount > 500 THEN 1 END) AS large_orders
FROM
orders
GROUP BY
customer_id;
在這個查詢中,我們使用了 CASE WHEN
表達式來對訂單金額進行分類。當訂單金額滿足特定條件時,CASE WHEN
會返回 1,否則返回 NULL。然后,我們使用 COUNT()
函數來計算每個類別的訂單數量。注意,COUNT()
函數不會計算 NULL 值,因此只有滿足條件的行才會被計算。
這個查詢將返回一個結果集,其中包含每個客戶的 ID 以及他們的小額訂單、中等訂單和大額訂單的數量。