mysql - 多行上的Mysql解析逻辑
问题描述
我使用以下参考解析查询
link1 - SET 和 Select Query 组合在单个 MySql 查询中运行以将结果传递到 pentaho link2
输入将显示在 Col1 下方,在上述参考链接中的 @input 中,我只考虑 1 条记录并为每个单元格应用解析逻辑,但问题是多行(n 行)并将结果与解析逻辑相结合。
Col1
--------------
22:4,33:4
33:6,89:7,69:2,63:2
78:6
blank record
22:6,63:1
我想创建与我要求的参考链接相同的单个查询。
Expected Output
xyz count
------------
22 10
33 10
89 7
69 2
63 3
78 6
我尝试了解决方案在这种情况下传递值
- where 条件在(我的查询)中通过 1 通过 1 col1
- 最大 (col1)
- group_concat
但我没有得到预期的输出来适应单个查询中的所有内容。
解决方案
我终于找到了我的问题的解决方案。和 group_concat 为此工作
@input= (select group_concat(Col1) from (select Col1 from table limit 10)s);
group_concat 将 Col1 的所有行合并为逗号分隔的字符串
22:4,33:4,33:6,89:7,69:2,63:2,78:6,blank record,22:6,63:1
因为我们现在有单个字符串,所以我们可以应用与链接 1 中所示相同的逻辑,我们可以用 REPLACE 命令替换空白记录并忽略它。
使用来自 link1 结果的逻辑后的输出
xyz count
------------
22 4
33 4
33 6
89 7
69 2
63 2
78 6
22 6
63 1
只需使用 Group by
select xyz,sum(count) from (select link1 output)s group by xyz;
会给你最终输出
xyz count
------------
22 10
33 10
89 7
69 2
63 3
78 6
推荐阅读
- r - 如何选择非唯一的列组合?
- reactjs - 如何将全局 scss mixins 导入创建反应应用程序?
- java - 为验证业务规则的 POJO 编写不变量
- azure - Azure IoT Hub 设备孪生 - 如何在查询中不获取元数据
- swift - 等待函数 Swift/SwiftUI
- mongodb - MongoDB 找到损坏的文档
- spring - 注解内的SpringBoot属性值
- cmake - 使用 CMake 编译 Fortran mex 文件
- javascript - 对水平滚动的影响
- kubernetes - 如何仅使用“kubectl apply -f file.yaml”从 kubernetes 对象中删除标签?