2009-02-03 3 views
0

J'ai 2 tables avec la structure suivante ..MySql obtenir le nombre de chaque type d'élément dans un cloumn

category 
{ 
    sub_cat_id - numeric 
    sub_cat_name - varchar 
    main_cat_id - varchar (2 characters) 
    main_cat_name - varchar 
} 

products 
{ 
    pid - autoincrement 
    pname - varchar 
    category (Will be either sub_cat_id or main_cat_id) 
} 

Produits Table

pid  pname  category 
1   mobile  EL 
2   shoes  1 
3   shirt  1 
4   TV   EL 
5   mp3 player EL 

Je veux obtenir le nombre de chaque catégorie la table de produits telle que ma requête renvoie 2 pour la catégorie 1 et 3 pour la catégorie EL

Quelqu'un pourrait m'aider s'il vous plaît avec ceci?

Répondre

4

Cela devrait être la question que vous êtes après:

SELECT category, COUNT(*) FROM products GROUP BY category; 

Je recommande de penser à la conception de votre table de catégorie, car il pourrait vous causer des problèmes à l'avenir.

+0

travaillé comme un charme Merci beaucoup! :) –

0

Attention aux valeurs nulles:

mysql> select resourcetype,count(resourcetype) as num from resources group by resourcetype  order by num desc; 
+-------------------+-------+ 
| resourcetype  | num | 
+-------------------+-------+ 
| COLLECTION  | 20036 | 
| HIDDEN_RESOURCE | 17443 | 
| DEFAULT_CALENDAR | 12528 | 
| CALSCHED_INBOX | 12528 | 
| CALSCHED_OUTBOX | 12528 | 
| CAL_RESOURCE  | 12367 | 
| SHARING_OUTBOX | 2465 | 
| SHARING_INBOX  | 2452 | 
| CALENDAR   |  8 | 
| HIDDEN_COLLECTION |  4 | 
| NULL    |  0 | 
+-------------------+-------+ 

mysql> select count(*) from resources where resourcetype is null; 
+----------+ 
| count(*) | 
+----------+ 
|  56 | 
+----------+ 
Questions connexes