-- 示例数据表: sales
-- 假设我们有一个销售记录表,包含以下字段:
-- id, product, region, amount
CREATE TABLE sales (
id INT AUTO_INCREMENT PRIMARY KEY,
product VARCHAR(50),
region VARCHAR(50),
amount DECIMAL(10, 2)
);
-- 插入一些示例数据
INSERT INTO sales (product, region, amount) VALUES
('Product A', 'North', 100.00),
('Product B', 'South', 200.00),
('Product A', 'East', 150.00),
('Product B', 'West', 250.00),
('Product A', 'North', 300.00),
('Product B', 'South', 400.00);
-- 行转列的查询:将每个产品的销售额按地区汇总并展示为列
SELECT
product,
SUM(CASE WHEN region = 'North' THEN amount ELSE 0 END) AS North,
SUM(CASE WHEN region = 'South' THEN amount ELSE 0 END) AS South,
SUM(CASE WHEN region = 'East' THEN amount ELSE 0 END) AS East,
SUM(CASE WHEN region = 'West' THEN amount ELSE 0 END) AS West
FROM sales
GROUP BY product;
-- 解释说明:
-- 1. 使用 `CASE` 语句将不同地区的销售额转换为列。
-- 2. `SUM(CASE WHEN region = 'North' THEN amount ELSE 0 END)` 这一行表示当地区为 'North' 时,累加该地区的销售额;否则返回 0。
-- 3. 最后使用 `GROUP BY product` 按产品进行分组,以确保每个产品对应一行结果。
上一篇:mysql 去重
下一篇:docker mysql
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站