mysql - 组数

标签 mysql count aggregate-functions

我有一个包含各种数据位的文本列的表格。

例如

Hello world  
This is a piece of text  
Q1 3  
New text  
Q2 2  
Q1 2  
Q1 3  
More text

文本trhat开头有Q1的位是投票数据,是我感兴趣的位。

我如何编写一个只获取投票数据计数的查询,例如从上面的表数据中返回

Q1:2 counts 1  
Q1:3 counts 2  
Q2:2 counts 1

我希望这是有道理的!

最佳答案

您可以按计数进行分组,并使用 WHERE 来限制您想要的情况:

SELECT table.textcol, COUNT(table.textcol)
FROM table
WHERE table.textcol LIKE "Q%"
GROUP BY table.textcol
ORDER BY table.textcol

这将输出

Q1 2 -> 1
Q1 3 -> 2
Q1 1-> 1

LIKE 更改为 REGEXP如果您想要更多的控制(但要注意索引,末尾带有 %LIKE 可以使用索引,而 REGEXP 则不能)。

关于mysql - 组数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139401/

相关文章:

postgresql - 选择组内值第二高的行

mysql - SQL 根据匹配值将多行合并为单行

mysql - Rails 关联模型聚合的性能改进

java - 使用 connector/j mysql 访问被拒绝异常

mysql - Google Cloud SQL 信息架构非常慢

mysql - 如果我们只能访问 phpMyAdmin,备份整个数据库的最佳方法是什么?

python - 列表内容的长度,里面有列表

mysql - 加快 MySQL 中的行计数

SQL SELECT 使用 CASE 语句,但有多个条件

performance - SQL Server - 按客户和时间戳日期分组的 MAX Timestamp 行的主键