2010-06-09 79 views
0

我有一个查询的一些困难:MySQL的慢COUNT()

SELECT d.*, 
     (SELECT COUNT(id) FROM downloads WHERE category = d.category) AS count 
FROM downloads d 
GROUP BY d.category 
ORDER BY count DESC 

所以,我试图让每个类别总downloadcount但此查询每次我运行它时挂起。

下载表有+ - 20000行

我在做什么错?

回答

4
SELECT category, count(id) as count 
FROM downloads d 
GROUP BY d.category 
ORDER BY count DESC 
+1

这将失败,如果您正在投射的所有列你会被所有的必须组列也是如此。 – 2010-06-09 20:27:54

+0

哦,男人,我觉得很愚蠢:) THX – Bundy 2010-06-09 20:29:52

+0

糟糕的面食复制。对不起 – Femaref 2010-06-09 20:32:04

0

我想你会更好,这样做:(d *)

SELECT category, count(*) as cnt 
    FROM downloads 
GROUP BY category 
ORDER BY cnt desc;