-- 示例数据表:sales
-- +--------+-------+-------+-------+
-- | product| q1 | q2 | q3 |
-- +--------+-------+-------+-------+
-- | A | 100 | 150 | 200 |
-- | B | 120 | 180 | 240 |
-- +--------+-------+-------+-------+
-- 使用UNION ALL实现UNPIVOT操作
SELECT product, 'q1' AS quarter, q1 AS sales FROM sales
UNION ALL
SELECT product, 'q2' AS quarter, q2 AS sales FROM sales
UNION ALL
SELECT product, 'q3' AS quarter, q3 AS sales FROM sales;
-- 结果:
-- +--------+---------+-------+
-- | product| quarter | sales |
-- +--------+---------+-------+
-- | A | q1 | 100 |
-- | A | q2 | 150 |
-- | A | q3 | 200 |
-- | B | q1 | 120 |
-- | B | q2 | 180 |
-- | B | q3 | 240 |
-- +--------+---------+-------+
解释说明:
sales表中的季度列(q1, q2, q3)转换为行。UNION ALL将每个季度的销售数据分别选择出来,并将它们合并成一个结果集。SELECT语句选择了产品名称、季度名称和对应的销售额,并将它们组合在一起形成最终的结果。上一篇:mysql json 解析
下一篇:mysql取最大值的那一行
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站