gpt4 book ai didi

mysql - 查询以告诉我某个数字在列中出现了多少次

转载 作者:行者123 更新时间:2023-11-29 03:19:28 24 4
gpt4 key购买 nike

我试图找出每个数字在一列中出现的次数。我有一个数据库,用于存储家长检查 child 进出幼儿园的密码。

pin 号存储在 CHAR(4) 列中;但它们都是数字。

我试过:

SELECT COUNT(pin) AS Count 
FROM adult
WHERE pin LIKE '%2%';

返回这些结果:

+-------+
| Count |
+-------+
| 182 |
+-------+

但这只能告诉我有多少条记录有“2”,而不是它出现了多少次(因为一条记录可能有不止 1 个“2”。遍历每个数字 0-9 也是一个非常手动的过程.

我想要一些看起来更像的东西:

+-----+-----+
|Value|Count|
+-----+-----+
| 0| 204|
| 1| 200|
| 2| 182|
. .
. .
. .
| 9| 203|
+-----+-----+

这超出了我对 SQL 的了解。非常感谢您的帮助!

最佳答案

你可以使用substr():

select substr(t.pin, n.pos, 1) as chr, count(*)
from adult t cross join
(select 1 as pos union all select 2 union all select 3 union all select 4
) n
group by substr(t.pin, n.pos, 1)
order by chr;

这会提取 pin 中的每个字符并按字符聚合。 from 子句等同于:

from ((select substr(col, 1, 1) from adult union all
(select substr(col, 2, 1) from adult union all
(select substr(col, 3, 1) from adult union all
(select substr(col, 4, 1) from adult
) t

关于mysql - 查询以告诉我某个数字在列中出现了多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47656531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com