2013-04-14 55 views
0

我有MySQL中的表,我想这样的输出:不同的值计数行

HNSHAK MOBILE COMPUTING =13 
HNSHAK STORAGE   =2 

产品组将分别我执行时间而改变。

表:

Productgroup Created By 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
STORAGE    HNSHAK 
MOBILE COMPUTING HNSHAK 
STORAGE    HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 
MOBILE COMPUTING HNSHAK 

回答

1

您的查询应该是这样的:使用GROUP BY Created_By, ProductGroup

SELECT `Created By`, ProductGroup, COUNT(*) `Count` 
FROM tablename 
GROUP BY `Created By`, ProductGroup; 

和聚合函数COUNT

这会给你:

Created By ProductGroup   Count 
HNSHAK  MOBILE COMPUTING  13 
HNSHAK  STORAGE     2 
0
SELECT `Created_By`, `Productgroup`, COUNT(`Productgroup`) 
FROM `table_name` 
GROUP BY `Productgroup` 

你应该在这里使用GROUP BY。您还应该记住,如果Created By中的所有值都不相同(例如其中一个值为COMPANY1),则要么忽略Productgroup并选择表中显示的第一个值Productgroup,每个_manufacturer会有多行产品组。为了实现后者,您将使用GROUP BY这种方式

GROUP BY `Created_By`, `Productgroup`