sql - 可以同时使用 SELECT DISTINCT 和 GROUP BY 吗?
问题描述
可以SELECT DISTINCT
和GROUP BY
从句一起使用吗?我需要DISTINCT
避免重复值并输入一个记录,然后获取这些重复值的总数。
例如,我有像Item Name和Quantity这样的列,它们的记录是(product A,5) , (product A,7)。
由于产品相同,我希望将其作为一个条目,然后合计其数量。因此,我的报告中的输出将是这样的:(产品 A,12)
DISTINCT
和GROUP BY
从句可以一起解决吗?
解决方案
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<>在这里摆弄
推荐阅读
- ansible - 如何将角色和模板整合到同一个剧本中
- reactjs - 有没有办法在打字稿中描述反应生命周期方法?
- swift - NSTableView 中的子类 NumberFormatter 未格式化
- c# - MVC 单字符串 JSON 帖子总是在控制器中为空
- node.js - 在 Node.js 中使用 Cloud Function 获取条带凭据的 POST 请求
- javascript - 即使在 array.Array 中推入元素之后,循环外也显示为空
- excel - 从计算机检索用户名
- java - run() 中的 repaint 方法
- laravel - 定义为参数时如何在子文件夹中创建控制器?
- javascript - 如何在两个图标之间切换?