MySQL 添加计数作为列进行查询

MySQL add count to query as column

我想要 运行 一个查询,返回满足特定条件的每条记录,并给出在我的 table.[=17= 中出现的总次数]

所以如果我 运行:

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

我从我的 table 中获取 id 的每个实例,其中 "CLM" 位于 id 中的某处。我想要在旁边的列中计算找到该特定记录的次数,但我似乎不知道该怎么做。

我正在寻找的是这样的:

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

我试过 SELECT id, count(id) from history 但它 returns 这个:

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

如何编写此查询?

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

SELECT   id, COUNT(*)
FROM     history
WHERE    id LIKE '%CLM%'
GROUP BY id
 SELECT id, count(*)
 from history 
 where id like "%CLM%"
 GROUP BY id