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 を超える結果を含む行のみを選択する場合は、そこに「having count>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

編集

ポイントはSeanに行きます-MySQLではなくMSSQL構文を使用していることに気づきました

また-COUNT(*)によるフィルターを参照してください?-MYSQL

于 2012-06-26T23:07:11.300 に答える