Mysql 选择给定年份的金额
我有一张表格,上面有国家、年份和每年的金额。我正在尝试编写一个查询,将给定年份的总金额相加,并将其作为列提供给我 例如,要获得如下输出:Mysql 选择给定年份的金额,mysql,Mysql,我有一张表格,上面有国家、年份和每年的金额。我正在尝试编写一个查询,将给定年份的总金额相加,并将其作为列提供给我 例如,要获得如下输出: Country 1991 1992 1993 France 25 12 38 我尝试过这样的查询,但没有成功: SELECT country as "Recipient", SUM(usd_amount) AS "1991" WHEN project_year = 1991,
Country 1991 1992 1993
France 25 12 38
我尝试过这样的查询,但没有成功:
SELECT
country as "Recipient",
SUM(usd_amount) AS "1991" WHEN project_year = 1991,
SUM(usd_amount) AS "1992" WHEN project_year = 1992,
SUM(usd_amount) AS "1993" WHEN project_year = 1993
FROM tb1
GROUP BY project_year, country
order by country, project_year
有什么建议吗?
谢谢
克里斯试试看:
SELECT
country as "Recipient",
SUM(if(project_year = 1991, usd_amount, 0)) AS "1991",
SUM(if(project_year = 1992, usd_amount, 0)) AS "1992",
SUM(if(project_year = 1993, usd_amount, 0)) AS "1993",
FROM tb1
GROUP BY country
ORDER BY country
PS:按项目年订购是没有意义的,因为您已经在进行聚合了。请尝试以下方法
SELECT
country as "Recipient",
SUM(case WHEN project_year = 1991 then usd_amount else 0 end) AS "1991" ,
SUM(case WHEN project_year = 1992 then usd_amount else 0 end) AS "1992" ,
SUM(case WHEN project_year = 1993 then usd_amount else 0 end) AS "1993"
FROM tb1
GROUP BY country, project_year
order by country, project_year
共享表中存储的数据示例。