我有一个这样的查询(它不能按预期工作)
SELECT
(CASE
WHEN str LIKE '%some_string%' THEN 's'
WHEN str LIKE '%some_string2%' THEN 's2'
END) as str,
COUNT(*) as num FROM Table WHERE
str LIKE '%some_string%' or
str LIKE '%some_string2%'
group by str
并且表格包含类似的东西
| str |
|------------------------------- |
| "some_string_a;" |
| "some_string_b; some_else" |
| "some_string_c; some_else" |
| "some_else; some_string2a" |
| "some_string_c; some_string2b" |
如何获得如下结果?
| str | num |
|---------------|--------|
| s | 4 |
| s2 | 2 |
我目前正在低估,因为当它们实际上包含两者时,第 1、2、3 和 5 行被计为“some_string%”(因此也是“s”)。