如何在一个查询中将reguler列的SELECT与列SUM的SELECT结合?

时间:2019-02-28 18:07:27

标签: mysql select sum

这是我的查询,无法正常工作:

SELECT `id`, SUM(`column1`) as `c1`, SUM(`column2`) AS `c2` 
FROM `table` 
WHERE `id` IN (18, 19, 20, 21)

我想从中得到什么:我想为SUM(column1)部分中列出的每个SUM(column2)获得idWHERE,并且要“区别” id与之匹配。我不知道如何在一个查询中将常规列SELECT与SUM列SELECT结合-甚至可能吗?示例:

`table` structure:
id column1 column2
18    5      3
18    5      3
20    10     10
20    10     5
20    10     5
21    1      1
22    10     10

Should return:
id  c1  c2
18  10  6
20  30  20
21  1   1

1 个答案:

答案 0 :(得分:3)

您应该对行进行分组:

SELECT `id`, SUM(`column1`) as `c1`, SUM(`column2`) AS `c2` 
FROM `table` 
WHERE `id` IN (18, 19, 20, 21)
GROUP BY `id`

SUM,COUNT和其他数学函数与GROUP BY一起使用。

如果您需要过滤特殊字段,请使用HAVING代替WHERE: https://www.w3schools.com/sql/sql_having.asp