2010-03-03 6 views
0

Je n'arrive pas à résoudre ce problème. S'il vous plaît aider.Problème de requête - Résultat S'annulant

J'ai une table nommée Product_Information. Je veux compter le nombre de produits présents dans une catégorie et sous-catégorie.

C'est la table

Product_Id - Product_Title - Product_Sub_Category - Product_Category 
1 ----------------abc------------------XYX------------------X 
2 ----------------def------------------XYX------------------Z 
3 ----------------ghi------------------XYX------------------X 
4 ----------------jkl------------------XYM------------------Z 

et je veux que le résultat soit comme

result 
------ 

Product_Category-Product_Sub_Category-count(Product_Id) 
X--------------------XYX-------------------------2 
Z--------------------XYX-------------------------1 
Z--------------------XYM-------------------------1 

(Désolé pour la présentation de l'information d'une manière mauvaise)

J'utilise la requête suivante:

Select 
Product_Category, 
Product_Sub_Category, 
count(`Product_Id`) 
from product_information 
group by 
Product_Category 

mais ça me donne un mauvais résultat.

+0

Pouvez-vous éditer votre question et mieux la présenter? – Kangkan

+0

Plus précisément, pouvez-vous mettre votre table et requêtes dans un bloc de code. –

+0

N'avez-vous pas besoin de 'grouper par Product_Category, Product_Sub_Category', vous seulement' grouper par Product_Category' dans le code de votre question –

Répondre

1

Si vous avez seulement besoin du nombre de produits dans une sous-catégorie spécifique, utilisez alors:

select count(*) from Product_Information 
where Product_Category = ? and Product_Sub_Category = ? 

Si vous avez besoin des numéros pour tous, alors vous aurez besoin de groupe comme ceci:

select Product_Category, Product_Sub_Category, count(*) 
from Product_Information 
group by Product_Category, Product_Sub_Category; 
+0

Le problème est que si j'utilise la Requête 2, j'obtiens un résultat mélangé. signifie que je vois la sous-catégorie qui n'est pas présente dans une catégorie .. aimablement aider –

1

Vous pouvez utiliser une fonction analytique et partitionner par, ou vous pouvez simplement faire quelques requêtes séparément (qui peuvent être combinées dans une grande requête si vous préférez), mais voici les requêtes de base: Compter par catégorie:

Product_Category, count(Product_Id) 

from product_information 

group by Product_Category 

Count par sous catégorie:

Product_Category, Product_Sub_Category, count(Product_Id) 

from product_information 

group by Product_Category, Product_Sub_Category 
+0

Merci les gens, je suis capable de résoudre mon problème –

0

Changer votre requête: Sélectionnez

 
Product_Category, Product_Sub_Category, count(Product_Id) 

from product_information 

group by Product_Category , Product_Sub_Category ; 

Il vous donnera beau résultat.