0
> select * from site, count(*) as count  
> from myTable 
> where year(created_at) = 2012
> group by site order by count DESC limit 10000

我正在选择大量的数据,这些数据本质上具有非常长且无用的尾巴。

我试图切断这个查询,所以它不会显示少于 500 个结果的任何内容。

我为解决这个问题所做的所有谷歌搜索都证明不是很有帮助。

知道如何构造查询以限制此数据仅显示计数为 500 或更多的站点吗?

4

2 回答 2

2
select * from site, count(*) as count  
from myTable 
where year(created_at) = 2012
group by site having count>500 order by count DESC limit 10000

如果您只想选择超过 500 个结果的行,则希望在其中出现“计数 > 500”。

WHERE 不适用于聚合函数。

于 2012-06-27T00:53:07.350 回答
0
select 
  site , 
  count(*) as val 
from 
  myTable 
where 
  year(created_at) = 2012 
and 
  val > 500 
group by 
  site
HAVING COUNT(*) > 500

编辑

点到肖恩 - 我意识到我使用的是 MSSQL 语法,而不是 MySQL

另外 - 请参阅按 COUNT(*) 过滤?- MYSQL

于 2012-06-26T23:07:11.300 回答