[英]Postgres ordering not working as expected
以下是我正在使用的查询:
SELECT T.abcd,
String_agg(T.yyy, ',') AS yyys,
T.bbb
FROM (SELECT s.abcd,
up.yyy,
s.bbb,
s.secondary_id
FROM A s
join B su
ON su.search_term_id = s.id
join lll_yyy up
ON up.lll = su.lll
ORDER BY s.abcd
su.page_no,
su.position) T GROUP BY T.abcd, T.bbb
基本上,在聚合函数之后生成的数据顺序与预期的不同。
输出应按abcd和page_no和position排序。 预期产量:
A | 1,2,3,4 | XX
实际产量
A |2,4,1,3 | XX
第二列未根据查询中给定的page_no,position进行排序。
abcd列包含数字,特殊字符等各种数据。例如: abcd
列中的一些示例术语是: 0900 dr jne pink
, 0900 dr jne pink
, 098 lakhani shoe
, iphone
, c??mpu men shoe sport
我尝试使用整理“ C”选项
有没有办法找出哪个词搞砸了排序顺序
您显示的查询不完整。 但是,似乎是这样的:
SELECT ... FROM (SELECT ... ORDER BY ...)
您的主选择此处没有ORDER BY
子句。 因此,您可以按任何顺序获取结果行。 DBMS可以忽略子查询中的ORDER BY
子句,因为表(包括派生表,即子查询)中的数据被认为是无序集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.