sql - SQL 查询 - 在连续行中累积连接字符串
问题描述
我是一名数据分析师,所以我编写 SQL 查询来从数据库中检索数据。我不确定到底是哪种 SQL,只是假设最标准(也不是像“DECLARE @tbl”这样的东西,也没有创建函数等)
这是我的问题。给定下表:
姓名 | 数字 | 信 |
---|---|---|
一个 | 1 | 一个 |
一个 | 2 | b |
一个 | 3 | C |
一个 | 4 | d |
乙 | 1 | 一个 |
乙 | 2 | b |
乙 | 3 | C |
乙 | 4 | d |
我想要以下结果:(累积连接字母,按数字排序))
姓名 | 数字 | 信 | 结果 |
---|---|---|---|
一个 | 1 | 一个 | 一个 |
一个 | 2 | b | 一,乙 |
一个 | 3 | C | a,b,c |
一个 | 4 | d | A B C D |
乙 | 1 | 一个 | 一个 |
乙 | 2 | b | 一,乙 |
乙 | 3 | C | a,b,c |
乙 | 4 | d | A B C D |
非常感谢任何帮助。非常感谢。
解决方案
这回答了标记为 MySQL 的问题的原始版本。
MySQL 不支持group_concat()
作为窗口函数。所以子查询可能是你最好的选择:
select t.*,
(select group_concat(t2.letter order by t2.number)
from t t2
where t2.name = t.name and t2.number <= t.number
) as letters
from t;
推荐阅读
- javascript - 你好很好,当我尝试执行代码时我得到了这个
- javascript - 根据使用 javascript 的单元格文本更改表格的行颜色
- javascript - 在 Vue.js 中每列需要一个文本过滤器
- google-sheets - 根据 Google 表格中不断变化的标准重新编号列表
- javascript - 如何在按钮单击 P(段落)时将第一个 textarea 内容移动到第二个 textarea?
- android - 使用 Room 数据库实现搜索时的分页库 3 问题
- firebase - 用于反应原生项目的 Firebase web vs ios 和 android 版本
- java - 使用 Apache Beam 实现内部连接
- javascript - 如果选中该复选框,则无线电禁用 = false 并且未选中则无线电被禁用 = true
- javascript - mac Safari javascript 全屏方法无法按预期工作