将表aaa: year month amount 1991 1 1.1 1991 2 1.2 1991 3 1.3 1991 4 1.4 1992 1 2.1 1992 2 2.2 1992 3 2.3 1992 4 2.4 查成这样的结果: year m1 m2 m3 m4 1991 1.1 1.2 1.3 1.4 1992 2.1 2.2 2.3 2.4
时间: 2024-02-10 12:33:27 浏览: 130
sql面试题大全.doc
您可以使用 SQL 中的转换函数和条件聚合语句来实现这个结果,具体的 SQL 语句如下:
SELECT year,
MAX(CASE WHEN month = 1 THEN amount ELSE NULL END) AS m1,
MAX(CASE WHEN month = 2 THEN amount ELSE NULL END) AS m2,
MAX(CASE WHEN month = 3 THEN amount ELSE NULL END) AS m3,
MAX(CASE WHEN month = 4 THEN amount ELSE NULL END) AS m4
FROM aaa
GROUP BY year;
这个 SQL 语句会将每个年份的四个月的数据转换成一行,其中使用了条件聚合语句 CASE WHEN 和 MAX 函数,来将每个月的金额按照对应的列进行聚合。
阅读全文