2014-10-07 2 views
0

У меня есть таблица customer_status, где столбец «id» уникален и cust_id является идентификатором клиента , а «статус» - это текущий статус клиента.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()' не подходит для этого, если вы не хотите, чтобы результаты были как одна строка. –

ответ

0

Вы можете использовать CONCAT:

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

Это прекрасно. Благодаря.. –

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