2011-05-23 3 views
0

Ma table ressemble:requête MYSQL pour trouver l'entrée la plus populaire

hook_bait | brand | flavour 
---------------------------------- 
corn  |   | 
bread  |   | 
boily  | variable | variable 

J'ai besoin d'exécuter une requête mysql qui va me donner le nom de hook_bait le plus populaire, et si un boily - quelle marque et la saveur la boily la plus populaire est.

Je ne sais pas où commencer

+6

Comment comptez-vous popularité? –

+2

Vous avez besoin d'un mécanisme scorint pour la popularité. Comment est-ce mesuré? – Alp

+2

Il n'y a rien dans cette table qui peut vous dire sur la popularité, où sont les chiffres? – Roger

Répondre

4

Vous pouvez obtenir le hook_bait le plus populaire par requête comme ceci:

SELECT 
    hook_bait, 
    COUNT(hook_bait) AS popularity 
FROM sample_table 
GROUP BY hook_bait 
ORDER BY popularity DESC 
LIMIT 0, 1 

Exemple complet requête:

SELECT 
    hook_bait, 
    IF(hook_bait = 'boily', (SELECT brand FROM sample_table t2 WHERE t2.hook_bait = t1.hook_bait GROUP BY brand ORDER BY COUNT(brand) DESC LIMIT 1), '-') AS brand, 
    IF(hook_bait = 'boily', (SELECT flavour FROM sample_table t2 WHERE t2.hook_bait = t1.hook_bait GROUP BY flavour ORDER BY COUNT(flavour) DESC LIMIT 1), '-') AS flavour 
FROM sample_table t1 
GROUP BY hook_bait 
ORDER BY COUNT(hook_bait) DESC 
LIMIT 0, 1 
+1

23 secondes après l'op commenté, sympa! : D – Jacob

+0

qui était rapide - appréciez votre aide – jeff

+0

Un copain gentil, j'espère que cela aide quelqu'un d'autre aussi! –

Questions connexes