gpt4 book ai didi

mysql - 使用聚合函数 SQL 进行计数

转载 作者:行者123 更新时间:2023-11-29 13:18:07 26 4
gpt4 key购买 nike

我有一个数据库,其中一个表保存所有代码,另一个表保存适用于无法转换为主键的数据的代码(因此这是一个巨大的问题)。有时代码在评论部分以“E1/D2/E3”的方式保存,因此一个评论中可以出现多个代码

我需要的是获取特定级别的代码列表,然后将其与 LIKE 语句一起使用,以查找每个代码在该特定数据库中存在的次数。

统计每个代码在注释表的代码栏中出现了多少次。我想获得这个级别的代码列表,然后我就坚持下去了。请帮忙

代码表:

+----+-----------+-----+
|Code|Description|Level|
+----+-----------+-----+
|A1 |desc |1 |
+----+-----------+-----+
|A2 |desc |1 |
+----+-----------+-----+
|A3 |desc |1 |
+----+-----------+-----+
|A4 |desc |1 |
+----+-----------+-----+
|A1.1|desc |2 |
+----+-----------+-----+
|A2.1|desc |2 |
+----+-----------+-----+
|A3.1|desc |2 |
+----+-----------+-----+
|A4.1|desc |2 |
+----+-----------+-----+

评论表:

+-------------+----------+-------------+
|Comment |Codes |Location |
+-------------+----------+-------------+
|Hello there |A1/A1.1/A2|Somewhere |
+-------------+----------+-------------+
|How are you |A4/A7/B1.1|Long time ago|
+-------------+----------+-------------+
|My name is...|B1/B2/B3 |Somewhere |
+-------------+----------+-------------+

现在我需要计算每个元组的注释部分中来自第 1 级的每个代码出现的次数。

最佳答案

如果您指的是每个代码在 comments 表的 codes 列中出现的频率:

select co.code, count(*)
from comments c join
codes co
on find_in_set(co.code, replace(c.codes, '/', ',')) > 0 and
co.level = 1
group by co.code;

编辑:

您还可以使用like来表达这一点:

select co.code, count(*)
from comments c join
codes co
on concat('/', c.codes, '/') like concat('%/', co.code, '/%')
co.level = 1
group by co.code;

请注意,在开头和结尾附加分隔符以确保完全匹配。

关于mysql - 使用聚合函数 SQL 进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209819/

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