2014-06-18 4 views
0

J'ai un problème avec une requête SQL.SQL pour trouver le nombre de produits expirés et le nombre total de produits par catégorie

Ceci est ma table de produit:

produit
• id
• Nom
• Prix
• a expiré
• fk_category

Je veux nombre de produits a expiré et le nombre total de groupe de produits par catégorie.

-je écrire la requête suivante et j'ai du mal à finir: il

SELECT COUNT(id) as nb_expired, COUNT (id) as nb_product 
FROM product 
WHERE expired = 1 
GROUP BY fk_category; 

Pouvez-vous me aider s'il vous plaît?

Répondre

1

Vous pouvez utiliser une instruction case dans le count seulement ceux expiré:

SELECT sum(case when expired = 1 then 1 else 0 end) as nb_expired 
,  COUNT (id) as nb_product 
FROM product 
GROUP 
BY  fk_category 
1
SELECT fk_category, sum(case when expired = 1 then 1 else 0 end) as expired_count, 
COUNT (1) as total 
FROM product 
GROUP BY  fk_category 
Questions connexes