首页 > 解决方案 > 可以同时使用 SELECT DISTINCT 和 GROUP BY 吗?

问题描述

可以SELECT DISTINCTGROUP BY从句一起使用吗?我需要DISTINCT避免重复值并输入一个记录,然后获取这些重复值的总数。

例如,我有像Item NameQuantity这样的列,它们的记录是(product A,5) , (product A,7)

由于产品相同,我希望将其作为一个条目,然后合计其数量。因此,我的报告中的输出将是这样的:(产品 A,12)

DISTINCTGROUP BY从句可以一起解决吗?

标签: sqlsql-servergroup-bydistinct

解决方案


GROUP BY将导致不同的行,它会自动执行此操作,您也不需要SELECT DISTINCT减少行数。

CREATE TABLE mytable(
   product  VARCHAR(1) NOT NULL
  ,quantity INTEGER  NOT NULL
);
INSERT INTO mytable(product,quantity) VALUES ('a',7);
INSERT INTO mytable(product,quantity) VALUES ('a',5);
INSERT INTO mytable(product,quantity) VALUES ('b',17);
INSERT INTO mytable(product,quantity) VALUES ('b',15);

选择产品,总和(数量)作为数量
来自我的表
按产品分组

产品 | 数量 :-------- | --: 一个 | 12 乙 | 32

db<>fiddle here 请注意,该结果中有一行,即,由于我们在子句product中指定了该列,因此调用的列中每个不同的值只有一行。GROUP BY

db<>在这里摆弄


推荐阅读