2010-06-09 7 views
0

Je vais avoir quelques difficultés avec une requête:mysql COUNT lent()

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

Donc, je suis en train d'obtenir le DOWNLOADCOUNT total de chaque catégorie, mais cette requête se bloque à chaque fois que je le lance.

Le tableau de téléchargements a + - 20000 lignes

Qu'est-ce que je fais mal?

Répondre

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

Cela échouera si vous projetez toutes les colonnes que vous auriez à groupe par tous les colonnes aussi bien. –

+0

Oh mec, je me sens tellement stupide :) THX – Bundy

+0

mauvaise copie des pâtes. désolé – Femaref

0

Je pense que vous feriez mieux de le faire: (. * D)

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