mysql 的相邻结果合并问题

2018-09-18 16:00:10 +08:00
 kingfi
查询的多条结果(排序后),想把相邻的有共同特征的数据(某几列相同)合并,有好的方案吗?

例:查询结果是 AAABBA 6 条结果,合并后是 ABA 3 条结果
3523 次点击
所在节点    MySQL
10 条回复
luguhu
2018-09-18 16:07:11 +08:00
为什么排序后还是 AAABBA?不应该是 AAAABB 吗?
reus
2018-09-18 16:15:03 +08:00
用 postgresql

SELECT
DISTINCT ON (列 1, 列 2)
*
FROM xxx

这样在遇到连续的列 1 和列 2 相等的行,会只取第一条
liprais
2018-09-18 16:16:48 +08:00
没看明白你到底要什么
kingfi
2018-09-18 16:24:21 +08:00
@luguhu 不是按这列排序的呀,还有一列是时间,按时间排序的 =-=
kingfi
2018-09-18 16:29:01 +08:00
@reus 感谢 先不考虑换数据库工具
kingfi
2018-09-18 16:33:16 +08:00
@liprais 感谢回复,补充 2 点,1 是一楼问的,排序是按记录创建时间,举例的 A 和 B,是表示具有不同特征的记录(有某几列数据项的值相同)
randyzhao
2018-09-18 17:02:09 +08:00
合并啥意思?值相加?拼字符串?

我楼上说的“有某几列数据项的值相同”,如果相同。。。为啥不挑一列取就完事了。。。

建议楼主把字段名公开出来,便于理解。
AAABBA ABA 这种表述方式太不易于别人理解问题了。
liuxu
2018-09-18 18:47:27 +08:00
Leigg
2018-09-18 18:55:27 +08:00
mysql 中的合并指的是 group 操作,使用 group 语句时,返回的字段要么是分组的字段,要么是聚合函数输出的字段。
mmdsun
2018-09-18 22:59:35 +08:00
说的是多列去重吧。group by 就可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX