sql - 如何计算每个 DISTINCT?
问题描述
我试图计算我从不同的每次命中中获得多少。于是开始:
SELECT DISTINCT category FROM dbtable
这给了我6个不同的类别,很好。现在我想计算每一行,所以结果如下所示:
category, 4
category, 8
category, 12
category, 72
category, 5
category, 65
我试过了:
SELECT COUNT (DISTINCT category) FROM dbtable
这给了我的第一类金额......
我在这里卡住了。:)
解决方案
您需要添加GROUP BY:
SELECT category, COUNT(*) FROM dbtable GROUP BY category
请注意:
您需要 GROUP BY 来收集数据,以便数据库服务器可以计算每一行并按您的类别过滤它,没有它服务器不知道要计算哪些行;
您必须记住,Group By 子句总是出现在 SQL 查询的末尾,就像 Order by 子句一样。
您不需要 DISTINCT,因为 GROUP BY 完成了这项工作。(感谢 jarlh)
你可以在这里找到更多关于小提琴的解释:https ://www.w3schools.com/sql/sql_groupby.asp
推荐阅读
- r - 如何使用文本框输入选择用于绘图的变量?
- apache-spark - Spark数据框过滤和选择,为什么它们的位置无关紧要?
- apache - Laravel:如何指定 php 版本?
- c# - 我想在激活 SelectionMode 时覆盖该行为
- flutter - Flutter 新项目构建错误 mergeDebugResources
- gradle - gradle 是否存储在 nexus repo 中?
- python - Python 如果打印结果与之前相同,则打印没有变化,否则打印新结果。每 10 分钟再跑一次
- android - 当我在谷歌播放控制台上发布我的应用程序包时出错
- javascript - 与 useState 的异步性质相比,React 的 useReducer 是同步的吗?
- jolt - 以下输入和预期输出所需的颠簸规范