我查询到SUM并计数我的表,但是我遇到了麻烦,我想在COUNT后对SUM列名求和。 这是我的桌子...
id no_reg name date qty
1 REG01 T-212-BS 2019-05-03 1
2 REG01 T-212-BS 2019-05-03 1
3 REG01 T-212-BS 2019-05-03 1
4 REG01 T-212-BA 2019-05-03 1
5 REG02 T-111-AA 2019-05-04 1
6 REG03 T-111-AB 2019-05-04 1
我创建查询。...
SELECT no_reg, COUNT(DISTINCT name) AS Name_qty, date, SUM(qty) AS qty
FROM part
GROUP BY no_reg, name, date, qty
执行后的查询结果...
no_reg Name_qty date qty
REG01 1 2019-05-03 1
REG01 1 2019-05-03 3
REG02 1 2019-05-04 1
REG03 1 2019-05-04 1
但是,我想要这样的结果...
no_reg Name_qty date qty
REG01 2 2019-05-03 4
REG02 1 2019-05-04 1
REG03 1 2019-05-04 1
答案 0 :(得分:2)
即使您在不同的语句中使用名称,也无需按名称分组。
SELECT no_reg, COUNT(DISTINCT name) AS Name_qty, date, SUM(qty) AS qty
FROM part
GROUP BY no_reg, date
答案 1 :(得分:1)
您要按qty
进行分组,因此任何不具有相同qty
的行都将被分别聚合。由于qty
用于聚合函数中,因此您可以将其从分组中删除,并且应该可以得到预期的结果
SELECT no_reg, COUNT(DISTINCT name) AS Name_qty, date, SUM(qty) AS qty
FROM part
GROUP BY no_reg, date
编辑:
我还注意到该名称包含在分组依据中。您也可以删除它,因为它已用于计数汇总