在SQL中,可以使用CASE WHEN
语句将特定条件作为聚合函数的分组操作。以下是一个例子:
假设我们有一个名为products
的表,包含产品名称、销售量和价格。我们想要计算每个产品的销售总额和销售量大于100的产品的销售总额。我们可以使用CASE WHEN
语句进行条件分组操作。
首先,创建一个示例表并插入一些数据:
CREATE TABLE products (
product_name VARCHAR(50),
sales_volume INT,
price DECIMAL(10,2)
);
INSERT INTO products (product_name, sales_volume, price)
VALUES ('Product A', 150, 10.00),
('Product B', 50, 20.00),
('Product C', 200, 15.00),
('Product D', 80, 25.00);
使用以下查询来计算每个产品的销售总额和销售量大于100的产品的销售总额:
SELECT product_name,
SUM(sales_volume) AS total_sales_volume,
SUM(CASE WHEN sales_volume > 100 THEN sales_volume ELSE 0 END) AS sales_volume_gt_100
FROM products
GROUP BY product_name;
结果将是:
+-------------+--------------------+------------------+
| product_name| total_sales_volume | sales_volume_gt_100 |
+-------------+--------------------+------------------+
| Product A | 150 | 150 |
| Product B | 50 | 0 |
| Product C | 200 | 200 |
| Product D | 80 | 0 |
+-------------+--------------------+------------------+
在上面的查询中,我们使用了CASE WHEN
语句来进行条件分组操作。如果sales_volume
大于100,则将其作为销售量大于100的产品。否则,将其视为0。然后,我们对这两列进行聚合,分别计算总销售量和销售量大于100的产品的销售总额。
希望这个示例能帮助到你!