如果您查看此SQL Fiddle,您将看到结果数据按年份和类型分组,这意味着每年有 2 行。我只想按年份分组,并在同一行显示 A 型和 B 型的总和。
有人可以告诉我如何修改此查询中的 sum 语句,以便第一个 sum 仅用于 A 型,第二个 sum 用于 B 型?谢谢。
如果您查看此SQL Fiddle,您将看到结果数据按年份和类型分组,这意味着每年有 2 行。我只想按年份分组,并在同一行显示 A 型和 B 型的总和。
有人可以告诉我如何修改此查询中的 sum 语句,以便第一个 sum 仅用于 A 型,第二个 sum 用于 B 型?谢谢。
如果你只想要两列,这很容易做到;
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;
这个怎么样: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
或者,您可以使用CASE
标准 SQL 语句,但稍长一些,所以我选择了这个版本。