gpt4 book ai didi

mysql 条件在同一行的两列的总和

转载 作者:行者123 更新时间:2023-11-29 21:30:49 25 4
gpt4 key购买 nike

我有一个包含这样的值的表

+-------+-----------+------------+------------+-----------+
| User | activity1 | activity2 | activity3 | activity4 |
+-------+-----------+------------+------------+-----------+
| user1 | A.C.E A1 | A.... | ABCDE ZZZ | A.C.. |
| user2 | A.C.. | A.CD. | ABCDE text | ABCD. |
| user3 | ABC.. | A.C.E free | A.... | A.... |
+-------+-----------+------------+------------+-----------+

我想要类似的结果

+-------+---+---+---+---+
| User | A | B | C | D |
+-------+---+---+---+---+
| user1 | 4 | 1 | 3 | 1 |
| user2 | 4 | 2 | 4 | 3 |
| user3 | 4 | 1 | 2 | 0 |
+-------+---+---+---+---+

A B C 和 D 的结果是每行的 Activity1..4 列中每个文本的呈现摘要。

我尝试使用 SUM(CASE WHEN ,我必须做错一些事情,它给了我错误的计数。我无法得到超过 1 的计数结果。

E 之后的文本将是任何可能的自由文本,目前不关心。

这些数据是从其他系统导出的 csv 格式的原始数据,我可以通过这种方式获取它,然后导入到 mysql 服务器。

我不是sql专家。有人可以帮助找到查询的解决方案。

最佳答案

如果我理解正确的话,你想计算每行中“A”、“B”等的数量。

基本思想是这样的:

select user,
((activity1 like '%A%') + (activity2 like '%A%') + (activity3 like '%A%') + (activity4 like '%A%')) as a,
((activity1 like '%B%') + (activity2 like '%B%') + (activity3 like '%B%') + (activity4 like '%B%')) as b,
((activity1 like '%C%') + (activity2 like '%C%') + (activity3 like '%C%') + (activity4 like '%C%')) as c,
((activity1 like '%D%') + (activity2 like '%D%') + (activity3 like '%D%') + (activity4 like '%D%')) as d
from t;

关于mysql 条件在同一行的两列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35283182/

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