如何在SQL中汇总特定的行和列?

时间:2019-01-15 21:51:21

标签: mysql sql

pnr mnd pris 
  1   1  600
  1   7  900
  2   1  600
  2   7  600
  3   1   40
  3   7   40

我很难对列上的特定行求和。综上所述,该表称为旅行,它有3列:

  • pnr-个人号码
  • nd-月
  • Pris-价格

所以我想要的是总计特定月份价格的总和,因此在这种情况下,应该是1240美元和第1个月。对于第7个月,应该是1540美元。

我无法正确执行查询。到目前为止,我还没有尝试过:

SELECT t.rnr, t.mnd, SUM(t.pris)
FROM travel AS t
WHERE t.mnd = 1

我得到的结果是3720 USD,我不知道SQL如何为我计算出这笔费用。

感谢有人可以帮助我!

2 个答案:

答案 0 :(得分:1)

为此,您需要从输出中删除pnr列(这无关紧要,将导致数据分裂)并添加GROUP BY

SELECT t.mnd, SUM(t.pris)
FROM travel AS t
WHERE t.mnd = 1
GROUP BY t.mnd

实时演示:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=b34ec2bb9c077c2d74ffc66748c5c142

(如您现在所使用的,不带分组的聚合函数不是标准的SQL功能,通常可以在MySQL中关闭。如果打开,则可能不会总是得到您期望/预期的结果)

答案 1 :(得分:0)

仅将结果与mnd

分组
SELECT t.mnd, SUM(t.pris)
FROM travel AS t
group by t.mnd