2010-08-20 7 views
1

J'ai une table MySQL et je cherche à créer une page de statistiques sur les données.MySQL groupe entier colonne en groupes de 100

Id (integer), Pri (integer), blab1, blab2, blab3, ect... 

Le champ "pri" a un nombre compris entre 0 et 1 000. Je voudrais savoir comment les lignes sont réparties sur le pri dans la table. Je cherche un moyen de grouper le "pri" par 100 et compte le nombre de lignes dans chaque groupe.

Par exemple:

Range | Count 
----------------- 
    0- 99 | 999 
100-199 | 50 
200-299 | 3587 

La façon plus facile serait d'exécuter 10 requêtes distinctes pour chaque plage, (WHERE pri >= 400 AND pri < 500) mais je me demandais s'il y avait un moyen plus facile?

Répondre

4

Vous pouvez toujours trunc la colonne pri aimer donc:

SELECT 
    truncate(pri/100,0)*100 AS Range_Start, 
    count(*) 
FROM ... 
GROUP BY 
    truncate(pri/100,0)*100; 
+0

I gt le message d'erreur suivant # 1305 - FONCTION trunc n'existe pas –

+0

Désolé, MySQL vous devez utiliser 'truncate', http : //dev.mysql.com/doc/refman/5.1/fr/mathematical-functions.html#function_truncate –