MySQL添加计数以查询为列

时间:2015-10-15 16:52:40

标签: mysql sql select count

我想运行一个查询,它会返回符合特定条件的每条记录,并给出我在表格中出现的总次数。

所以,如果我跑:

SELECT id from history where id like "%CLM%";

我从我的表中获取id的每个实例,其中“CLM”位于id中的某个位置。在NEXT列中我想要的是计算特定记录的次数,我似乎无法弄清楚如何做到这一点。

我正在寻找的是这样的:

╔══════╦═══════╗
║  id  ║ count ║
╠══════╬═══════╣
║ CLM1 ║     1 ║
║ CLM2 ║     5 ║
║ CLM3 ║    13 ║
╚══════╩═══════╝

我已尝试SELECT id, count(id) from history,但它会返回:

╔══════╦══════════╗
║  id  ║ count    ║
╠══════╬══════════╣
║      ║ 12258432 ║
╚══════╩══════════╝

如何撰写此查询?

2 个答案:

答案 0 :(得分:5)

如您所见,您可以使用count函数计算行数。但是,您缺少的部分是按id细分此结果,可以使用group by子句来完成:

SELECT   id, COUNT(*)
FROM     history
WHERE    id LIKE '%CLM%'
GROUP BY id

答案 1 :(得分:0)

 SELECT id, count(*)
 from history 
 where id like "%CLM%"
 GROUP BY id