- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我在 MYSQL 中有以下简单表(表名:test)
id letter
1 A
2 BC
3 AB
4 C
5 AC
6 BA
7 CAB
8 C
我的目标是创建另一个表,其中字母成为一列的行,另一列来计算字母的数量。这是我的 MYSQL 查询:
SELECT
(CASE WHEN letter REGEXP 'A' THEN 'A'
WHEN letter REGEXP 'B' THEN 'B'
WHEN letter REGEXP 'C' THEN 'C'
END) LETTER,
COUNT(letter) COUNT_OF_LETTER
FROM test
GROUP BY (CASE WHEN letter REGEXP 'A' THEN 'A'
WHEN letter REGEXP 'B' THEN 'B'
WHEN letter REGEXP 'C' THEN 'C'
END);
查询的输出是:
LETTER COUNT_OF_LETTER
A 5
B 1
C 2
虽然 A 的计数正确,但 B 和 C 的计数不正确。对于表“test”中具有多个字母的条目,一旦被计为 A,就不会再次计入 B 和/或 C。B 也是如此 - 如果已计入 C,则跳过 C B.我的预期输出应该是这样的:
LETTER COUNT_OF_LETTER
A 5
B 4
C 5
如果我只为每个单独的字母创建一个 CASE WHEN,它会正确地将 A 计为 5,B 计为 4,C 计为 5,但当像上面那样使用多个 WHEN 时则不会。
我已经在周围搜索了类似的内容,但它并没有解决此类问题。不管怎样,谢谢你在这件事上帮助我。
问候,沙希兰。
最佳答案
示例数据:
create table tbl(id int, letters varchar(5));
insert into tbl values
(1, 'A'),
(2, 'BC'),
(3, 'AB'),
(4, 'C'),
(5, 'AC'),
(6, 'BA'),
(7, 'CAB'),
(8, 'C');
试试这个:
select 'A' letter, sum(length(letters) - length(replace(letters, 'A', ''))) occurences from tbl
union all
select 'B', sum(length(letters) - length(replace(letters, 'B', ''))) from tbl
union all
select 'C', sum(length(letters) - length(replace(letters, 'C', ''))) from tbl
但我更喜欢这种方式:
select sum(length(letters) - length(replace(letters, 'A', ''))) A,
sum(length(letters) - length(replace(letters, 'B', ''))) B,
sum(length(letters) - length(replace(letters, 'C', ''))) C
from tbl
关于MYSQL 对每个字母使用多个 CASE REGEXP 作为表行,并且还允许对每个所述 REGEXPied 字母进行重复/重复计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51613178/
我正在阅读 Joshua Bloch 的书 effective java。在“favor composition over inheritance”的第 16 条中,他给出了一个使用 HashSet
我一直在阅读 Adam Dymitruk's git workflow ,这一切都很有道理。 我找不到任何讨论的一件事是修复旧版本中的错误。想象一下带有 7.0、7.1、7.2、7.3、7.4、7.4
我有几个类为“itemWerk”的 div。我想切换它们,以便我可以放大它们并将它们设置回原来的大小和位置。 在here 上,我已经走了很远了.这只是我无法开始工作的第二个功能中的定位。我不太确定我应
我正在尝试创建一个检测 USB 插入的服务。为此,我必须通过 RegisterDeviceNotification(HANDLE, LPVOID, DWORD)< 创建一个 HDEVNOTIFY/.
我是一名优秀的程序员,十分优秀!