得到不同的领域和他们的MySQL计数

时间:2019-06-17 13:49:11

标签: mysql

我有一张类似的桌子

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

3 个答案:

答案 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

sqldiffle here

答案 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