MySQL - 计数和分组 - 将所有结果显示在一行中

Kev*_*Sol 2 mysql sql database

我认为这应该很简单,但我无法弄明白或在这里找到解决方案.

我有一个表ITEM_PROPERTIES

item_ID int
property_name char(20)
property_value char(20)
Run Code Online (Sandbox Code Playgroud)

样本数据

5   Colour  Black
5   Size    M   
6   Colour  Blue
6   Size    L   
7   Colour  Purple
7   Size    M   
8   Colour  Blue
8   Size    S   
9   Colour  Wine
9   Size    M   
Run Code Online (Sandbox Code Playgroud)

如果我做:

SELECT property_value, count(property_value) 
FROM ITEM_PROPERTIES where property_name='Colour'
group by property_value
Run Code Online (Sandbox Code Playgroud)

我明白了:

Black   1
Blue    2
Purple  1
Wine    1
Run Code Online (Sandbox Code Playgroud)

我如何在一行中得到这样的:

Black 1, Blue 2, Purple 1, Wine 1
Run Code Online (Sandbox Code Playgroud)

我试过了 :

SELECT group_concat(property_value, count(property_value)) 
FROM ITEM_PROPERTIES where property_name='Colour'
group by property_value

SELECT group_concat(concat(property_value, count(property_value))) 
FROM ITEM_PROPERTIES where property_name='Colour'
group by property_value
Run Code Online (Sandbox Code Playgroud)

但两者都给出错误无效使用组功能

Pav*_*rov 7

select group_concat(concat(property_value, '  ', cnt))
from (
    SELECT property_value, count(property_value) as cnt
     FROM ITEM_PROPERTIES
     WHERE property_name = 'Colour'
     GROUP BY property_value
) c
Run Code Online (Sandbox Code Playgroud)