Mysql 如何计算连字符前的结果总数?

Mysql 如何计算连字符前的结果总数?,mysql,sql,database,sequelpro,Mysql,Sql,Database,Sequelpro,我想从一个SQL count查询中计算结果的数量,结果目前大约有50个结果,但实际上只有5个结果。。。结果以如下格式显示: test1-helpme1 test1-helpme3 test1-helpme4 test2-helpme1 test2-helpme2 test3-helpme4 有没有办法只计算“testx-”部分的结果? 可能有数百个结果,因此“测试”的数字部分不能硬编码 SELECT COUNT(*) as CountbyID, OriginalId FROM Table1 G

我想从一个SQL count查询中计算结果的数量,结果目前大约有50个结果,但实际上只有5个结果。。。结果以如下格式显示:

test1-helpme1
test1-helpme3
test1-helpme4
test2-helpme1
test2-helpme2
test3-helpme4
有没有办法只计算“testx-”部分的结果? 可能有数百个结果,因此“测试”的数字部分不能硬编码

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

是的,您可以使用LEFT按字符串的子集分组:

declare @test as table (test varchar(100))

insert into @test
Select 'test1-helpme1' UNION ALL
Select 'test1-helpme3' UNION ALL
Select 'test1-helpme4' UNION ALL
Select 'test2-helpme1' UNION ALL
Select 'test2-helpme4'

Select count(*) as countbyID, left(test,5) as originalid from @test group by left(test,5)

是的,您可以使用LEFT按字符串的子集分组:

declare @test as table (test varchar(100))

insert into @test
Select 'test1-helpme1' UNION ALL
Select 'test1-helpme3' UNION ALL
Select 'test1-helpme4' UNION ALL
Select 'test2-helpme1' UNION ALL
Select 'test2-helpme4'

Select count(*) as countbyID, left(test,5) as originalid from @test group by left(test,5)

如果需要图案的不同出现次数,则:

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)

如果需要图案的不同出现次数,则:

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)

你能解释一下SQL中发生了什么吗?这正是我需要的!这:
左(OriginalId,INSTR(OriginalId,“-”)-1))
将零件提供给
-
。然后,第一个查询统计表中存在多少个不同的查询。第二组按此对表进行分组,并计算每个组中存在多少项。您能解释一下此SQL中发生了什么吗?这正是我需要的!这:
左(OriginalId,INSTR(OriginalId,“-”)-1))
将零件提供给
-
。然后,第一个查询统计表中存在多少个不同的查询。第二组按此对表格进行分组,并统计每组中存在多少项。