2014-10-07 57 views
0

我有一個customer_status表,其中「id」列是唯一的,cust_id是客戶ID ,「status」是客戶的當前狀態。MySQL:GROUP_CONCAT該列及其計數

表如下:

id  cust_id  status 
1   1   NEW 
2   2   NEW 
3   1   VIEWED 
4   1   NEW 
5   1   VIEWED 
6   1   NEW 

現在我的要求就是顯示狀態,併爲每一位客戶的狀態計數。

例如,考慮的cust_id = 1個,則輸出應該是:

NEW : 3 
VIEWED : 2 

我嘗試使用GROUP_CONCAT但couldnot與顯示狀態和狀態數,以冒號分隔成功。

請幫我一把。

+1

'GROUP_CONCAT()'不適合這個,除非你想要結果作爲一個單一的行。 – 2014-10-07 10:58:48

回答

0

您可以使用CONCAT:

select CONCAT(status,':',count(status)) from customer_status as result where cust_id = 1 group by status; 
+0

這是完美的。謝謝.. – 2014-10-07 11:09:41

0

試試這個:

select count(status),status from customer_status where cust_id=1 group by status 
2

我認爲你可以得到你想要的東西,而不GROUP_CONCAT:

SELECT status, COUNT(status) FROM customer_status WHERE cust_id = 1 GROUP BY status