2010-11-08 124 views
0

我知道COUNT(*)的基本用法,我不知道是否可以使用它或其他函數來獲得以下結果。如何計算MySQL中的行數?

我有一個人與他們購買的產品表(product_id _)。我有第二個表,它將每個product_code映射到單個product_category

使用一個簡單的SELECT我可以結合兩個表來獲得:

first last product_code product_category 
John BGood 100   Food 
John BGood 29   Beverage 
John BGood 30   Beverage 
Rita Black 25   Fashion 
Betty Rock 36   Electronics 
Betty Rock 72   Food 
Betty Rock 100   Food 
Betty Rock 36   Electronics 

但我想是計算每個人的產品數量從每個類別中購買。 product_category是具有5個可能值的枚舉(以上四個和Other)。我想獲得一個表所示:

first last product_category count 
John BGood Food    1 
John BGood Beverage   2 
John BGood Fashion   0 
John BGood Electronics  0 
John BGood Other   0 
Betty ... 

回答

0
SELECT first, last, product_category, COUNT(product_code) 
FROM <table> 
ORDER BY last, first 
GROUP BY first, last, product_category 
0

嘗試此查詢

SELECT first, last, product_category, count(product_category) 
FROM <table_name> 
GROUP BY product_category 
+0

我認爲你必須由'first'和'last'進行分組,因爲你不想聚合所有類別的總數,而是聚合相應人員的所有類別。 – Flinsch 2010-11-08 09:09:30

0

追加GROUP BY person_id, product_category您選擇。