具有多个和值的MySQL查询分组
如果查看此内容,您将看到结果数据按年份和类型分组,这意味着每年有2行。我只想按年份分组,并在同一行显示A型和B型的总和具有多个和值的MySQL查询分组,mysql,Mysql,如果查看此内容,您将看到结果数据按年份和类型分组,这意味着每年有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
有人能告诉我如何修改此查询中的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 如果您只需要这两列,那么这相当容易
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 这个怎么样:
或者,您可以使用标准SQL的CASE
语句,但稍长一些,所以我选择了这个版本。这个怎么样:
或者,您可以使用标准SQL的
CASE
语句,但稍长一些,所以我选择了这个版本。非常感谢。这正是我想要的。不过,我不太懂语法。这意味着什么:金额*(Type='A')???*做什么?@Danielatard改为可读性更强的标准SQL,前者是特定于MySQL的,更难阅读。太棒了。我理解冗长的版本。再次感谢。让我度过了一个美好的夜晚!非常感谢。这正是我想要的。不过,我不太懂语法。这意味着什么:金额*(Type='A')???*做什么?@Danielatard改为可读性更强的标准SQL,前者是特定于MySQL的,更难阅读。太棒了。我理解冗长的版本。再次感谢。让我度过了一个美好的夜晚!谢谢你,沃尔夫。我从你的帖子中学到了很多。谢谢,沃尔夫。我从你的帖子中学到了很多。谢谢。