【问题标题】:How to combine SELECT of reguler column with SELECT of SUM of the columns in one query?如果一个查询中列的 SUM,如何将常规列的 SELECT 与 SELECT 结合起来?
【发布时间】:2019-02-28 18:07:27
【问题描述】:

这是我的查询没有按预期工作:

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

我想从中得到什么:我想为WHERE 部分中列出的每个id 以及与之匹配的“不同”id 获得SUM(column1)SUM(column2)。我不知道如何在一个查询中将常规列 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

【问题讨论】:

  • 听说过GROUP BY吗?
  • 嗯 - 不,我不会问我有没有,对吧? ;)

标签: mysql select sum


【解决方案1】:

你应该对行进行分组:

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

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    相关资源
    最近更新 更多