【问题标题】:Condition based on COUNT(*) in query with GROUP BY clause使用 GROUP BY 子句的查询中基于 COUNT(*) 的条件
【发布时间】:2014-09-01 13:52:06
【问题描述】:

我有一个包含 300,000 条记录的表 Employee,其中包含以下字段:

  • 名字
  • 姓氏
  • 年龄
  • Lo​​cation_Id

查询应返回包含超过 75000 条记录及其计数的 location_id 值。

【问题讨论】:

标签: sql group-by


【解决方案1】:

这是您要查找的查询:

SELECT T.Location_Id
     ,COUNT(T.Location_Id) AS [nbRecords]
FROM yourTable T
GROUP BY T.Location_Id
HAVING COUNT(T.Location_Id) > 75000

希望这会对你有所帮助。

【讨论】:

  • 如果我想显示计数正好为 0(零)的记录?
  • @JatinSehgal 您只需将HAVING 子句更改如下:HAVING COUNT(T.Location_Id) = 0
  • @JatinSehgal 我的错误,您想如何显示表格中不存在的位置? (即计数等于零的意思!)
  • 我只是想知道这种情况是否可能在我想显示 group by 子句中使用的列的每个可能值的计数。 Ex select count(OA.dateComplete) from OA join OAR on ...... where OA.dateComplete between '' AND '' group by Oa.dateComplete
  • @JatinSehgal 是的,可以根据需要计算出现的次数,但您需要定义 LEFT JOIN 以便保留主表中的每个值,即使连接中没有对应关系表(在这种情况下,您将能够过滤 COUNT(...) = 0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2016-05-09
  • 2015-10-23
  • 2021-12-22
  • 1970-01-01
相关资源
最近更新 更多