如果您查看此SQL Fiddle,您会看到结果数据按年份和类型分组,这意味着每年有2行。我想只对年份进行分组,并在同一行显示A型和B型的总和。
有人可以告诉我如何修改此查询中的sum语句,以便第一个总和仅用于A类型,第二个总和用于B类型?感谢。
答案 0 :(得分:2)
如果你只想要两列,那就很容易了;
SELECT Year,
SUM(CASE WHEN Type='A' THEN Amt ELSE 0 END) TypeA,
SUM(CASE WHEN Type='B' THEN Amt ELSE 0 END) TypeB
FROM YourTable
GROUP BY Year
...或者更详细的标准SQL;
答案 1 :(得分:1)
这个怎么样:http://sqlfiddle.com/#!2/85415/11
SELECT
SUM(IF(TYPE = 'A', Amt, 0)) AS A_amt,
SUM(IF(TYPE = 'B', Amt, 0)) AS B_amt,
YEAR,
TYPE
FROM YourTable
GROUP BY YEAR
或者你可以使用标准SQL的CASE
语句,但稍长一些,所以我选择了这个版本。