sql - 如何在查询中汇总特定字符串
问题描述
我想在特定列中将行与重复项合并,以便列出特定项目而排除其他项目
我曾尝试使用string_agg
和group_by
self joins,我觉得我可能只是需要一个更好的self join
,但我不确定。
one two three four
1 1 a NULL
2 4 b e
3 7 c x
3 7 c z
我希望它看起来像这样(相同的元素保持未隔离)
one two three
1 1 a NULL
2 4 b e
3 7 c x,z
解决方案
如果您使用的是 MySQL:
SELECT one, two, three, GROUP_CONCAT(four)
FROM table
GROUP BY one, two, three
否则,这在 RDBMS 中是一件坏事,因为这不是关系操作。您应该在项目的客户端执行此操作。
推荐阅读
- java - 使用 Matcher 和正则表达式后如何传递数组项的原始值
- java - Hibernate:出现错误“嵌套异常是 org.hibernate.MappingException:没有 JDBC 类型的方言映射:-15”
- visual-studio-debugging - 如何在 Visual Studio 中调试子项目进程
- css - 带有 CSS 变量和 @keyframes 的 CSS 动画未在 Safari 上更新
- android - 谷歌地图相机在一秒钟后重置当前位置
- android - RecyclerView 项目左对齐
- javascript - 当我点击按钮整个
- sql-server - 带有动态 LinkedServer 的 SQL SERVER 查询游标
- python - 如何在 python 中正确使用反向函数作为凯撒密码?
- r - 在 R 中使用 grepl 的多个正则表达式