如何将一些相似的模式数据合并到mysql的一列中,以获得计数?

如何将一些相似的模式数据合并到mysql的一列中,以获得计数?,mysql,sql,count,Mysql,Sql,Count,我有一张像下面这样的桌子 从这个表中,我想得到SearchParams的计数,我试着这样做: 但我希望所有与“TVE xxxx”模式匹配的数据都应合并为“TVE”和计数 请提供帮助。要使用“TVE xxx”模式过滤数据,请使用下面的查询 select name,count(name) from tblName where name REGEXP '^TVE\-[a-zA-Z]{3}$' group by name 如果您知道模式的差异,可以使用CASE/WHEN将输出汇总如下。在这种情

我有一张像下面这样的桌子

从这个表中,我想得到SearchParams的计数,我试着这样做:

但我希望所有与“TVE xxxx”模式匹配的数据都应合并为“TVE”和计数


请提供帮助。

要使用“TVE xxx”模式过滤数据,请使用下面的查询

select name,count(name) 
from tblName
where name REGEXP '^TVE\-[a-zA-Z]{3}$'
group by name 

如果您知道模式的差异,可以使用CASE/WHEN将输出汇总如下。在这种情况下,您必须知道值列表可能是针对一个组的,例如“Account”,您需要将它们放入案例陈述的in列表中

SELECT 
CASE 
    WHEN searchParam IN ('AccountSVNC','AccountSVNC') THEN 'Account'
    WHEN searchParam IN ('TVE-ABC','TVE-CDE','TVE-MFG') THEN 'TVE'
    ELSE searchParam
END searchParam,
COUNT(searchParam)     
FROM your_table
GROUP BY  
CASE 
    WHEN searchParam IN ('AccountSVNC','AccountSVNC') THEN 'Account'
    WHEN searchParam IN ('TVE-ABC','TVE-CDE','TVE-MFG') THEN 'TVE'
    ELSE searchParam
END 

使用CASE语句确定分组依据的值:

select 
  case when searchParam like 'TVE-%' then 'TVE' else searchParam end groupParam,
  count(*) counter
from careinsight.testtable
group by groupParam

不要发布代码等的图像,因为现在我们无法复制和修改您的查询。我懒得从一开始就把它写下来……你们知道TVE-的三种不同模式吗?或者动态?OP希望将不同的TVE行组合在一起。这是一个完美的解决方案。