Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql 行转列

作者:恋你如初   发布日期:2026-01-05   浏览:77

-- 示例数据表: 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

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站