-- 示例代码:MySQL 行列转换(行转列)
-- 假设我们有一个名为 sales 的表,结构如下:
-- +----+--------+-------+
-- | id | name | value |
-- +----+--------+-------+
-- | 1 | Alice | 100 |
-- | 2 | Bob | 200 |
-- | 3 | Alice | 150 |
-- | 4 | Charlie| 300 |
-- +----+--------+-------+
-- 我们希望将 name 列的不同值转换为列,并计算每个 name 对应的 value 总和。
-- 使用 CASE WHEN 实现行列转换
SELECT
SUM(CASE WHEN name = 'Alice' THEN value ELSE 0 END) AS Alice,
SUM(CASE WHEN name = 'Bob' THEN value ELSE 0 END) AS Bob,
SUM(CASE WHEN name = 'Charlie' THEN value ELSE 0 END) AS Charlie
FROM sales;
-- 结果:
-- +-------+-----+---------+
-- | Alice | Bob | Charlie |
-- +-------+-----+---------+
-- | 250 | 200 | 300 |
-- +-------+-----+---------+
-- 解释:
-- 1. 使用 CASE WHEN 语句根据不同的 name 值进行条件判断。
-- 2. 对每个 name 分别求 value 的总和。
-- 3. 最终结果将 name 列的不同值转换为列,并显示对应的汇总值。
上一篇:mysql中两个日期之间的天数
下一篇:mysql 随机
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站