mysql - 如何计算连字符之前的结果总数?

标签 mysql sql database sequelpro

我正在计算 SQL 计数查询的结果数,当前结果大约有 50 个结果,但实际上只有 5 个结果...结果以如下格式显示:

test1-helpme1
test1-helpme3
test1-helpme4
test2-helpme1
test2-helpme2
test3-helpme4

有没有办法可以只计算结果的“testx-”部分? 可能有数百个结果,因此“test”的数字部分不能被硬编码

SELECT COUNT(*) as CountbyID, OriginalId FROM Table1 GROUP BY OriginalId;

最佳答案

如果您想要模式的不同出现次数,则:

SELECT 
  COUNT(DISTINCT LEFT(OriginalId, INSTR(OriginalId, '-') - 1)) as counter
FROM Table1 

或每个计数器:

SELECT 
  LEFT(OriginalId, INSTR(OriginalId, '-') - 1) pattern,
  COUNT(*) as counter
FROM Table1
GROUP BY LEFT(OriginalId, INSTR(OriginalId, '-') - 1)

关于mysql - 如何计算连字符之前的结果总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55729618/

相关文章:

sql - 使用显式 create table 语句与 select into 创建表

php - 如何在php中创建一对多关系

mysql - 无法使用 mysql shell 连接 mysql-server docker

MySql 运行总时间取决于票务状态

sql-server - 在不同的 DBMS 之间传输数据

php - 使用 Ruby on Rails 保护数据?

在 Javascript 中使用设置间隔函数在 IE 中无法正确调用 PHP

Mysql 数据库查询未按预期工作

mysql - 转换一个有效的 SQL NOT IN

mysql - 空时连接 (mysql)