我有一张类似的桌子
A B C
..................
1 2 a
1 3 b
1 4 a
我想要查询结果,可以将resullt作为其不同的值和数量 例如。上表
result
`{a 2 , b 1}`
我正在使用sql 5.6
。
我尝试使用GROUP_CONCAT(C) group by A
。
但是我不能这样存储他们的count
。
答案 0 :(得分:1)
您将需要一个子查询来获取COUNT
和不同的c
值。由此,您可以制作GROUP_CONCAT
:
CREATE TABLE foo (c char(1));
INSERT INTO foo VALUES ('a'),('a'),('b');
SELECT GROUP_CONCAT(CONCAT(c,' ',countc))
FROM (SELECT c, count(*) as countc FROM foo GROUP BY c) sub;
a 2,b 1
答案 1 :(得分:1)
首先获取计数器组,然后使用group_concat():
select
concat('{', group_concat(concat(t.C, ' ', t.counter)), '}') result
from (
select C, count(*) counter
from tablename
group by C
) t
请参见demo。 结果:
| result |
| --------- |
| {a 2,b 1} |
答案 2 :(得分:0)
您将需要类似以下查询的内容:
select c, count(c) from <your table name> group by c