小编Kad*_*del的帖子

计算SQL中的多个CASE出现次数

我正在寻找以下问题的解决方案:

SELECT CASE WHEN p.value LIKE '%foo%' THEN 'foos'
    WHEN p.value LIKE '%bar%' THEN 'bars'
    WHEN p.value LIKE '%bakar%' THEN 'bakars'
    ELSE p.value END as value,
COUNT(*) as count FROM table_a p GROUP BY value
Run Code Online (Sandbox Code Playgroud)

值类似于:

foo, bar, foo and bar, bakar, bakarbar, foobar
Run Code Online (Sandbox Code Playgroud)

此查询的结果是:

 value    count
 foos       3
 bars       2
 bakars     1
Run Code Online (Sandbox Code Playgroud)

此代码成功计算出现次数,但CASE在第一次匹配时停止.有没有办法做到这一点?

value    count
 foos       3
 bars       4
 bakars     2
Run Code Online (Sandbox Code Playgroud)

mysql sql

9
推荐指数
2
解决办法
1469
查看次数

标签 统计

mysql ×1

sql ×1