コンテンツにスキップ

接尾辞 -If は、任意の集計関数の名前に付加できます。この場合、集計関数は追加の引数として条件を受け取ります。

func.sum_if(<column>, <cond>)
func.sum_if(table.amount, table.status=='Completed').alias('total_amount_completed')
| total_amount_completed |
|------------------------|
| 270.0 |
SUM_IF(<column>, <cond>)

テーブルの作成とサンプルデータの挿入

CREATE TABLE order_data (
id INT,
customer_id INT,
amount FLOAT,
status VARCHAR
);
INSERT INTO order_data (id, customer_id, amount, status)
VALUES (1, 1, 100, 'Completed'),
(2, 2, 50, 'Completed'),
(3, 3, 80, 'Cancelled'),
(4, 4, 120, 'Completed'),
(5, 5, 75, 'Cancelled');

クエリのデモ: 完了した注文の合計金額を計算する

SELECT SUM_IF(amount, status = 'Completed') AS total_amount_completed
FROM order_data;

結果

| total_amount_completed |
|------------------------|
| 270.0 |