doris 临时表排序问题

Viewed 24

select *
from (select DATE_FORMAT(a.endcase_date, '%Y') as endcase_date0
from EDW_CLM_CASE_LIST a
group by DATE_FORMAT(a.endcase_date, '%Y')
order by case
when DATE_FORMAT(a.endcase_date, '%Y') is null then
1
else
0
end desc,
DATE_FORMAT(a.endcase_date, '%Y') desc) as temp_ limit 100
上面的sql使用temp 表,导致查询结果排序有问题,需要改为
select *
from (select DATE_FORMAT(a.endcase_date, '%Y') as endcase_date0
from EDW_CLM_CASE_LIST a
group by DATE_FORMAT(a.endcase_date, '%Y')
order by case
when DATE_FORMAT(a.endcase_date, '%Y') is null then
1
else
0
end desc,
DATE_FORMAT(a.endcase_date, '%Y') desc limit 100) as temp_ ;
在MySQL 中执行,2个sql 返回结果一致,排序无问题,为了保持和MySQL一致,如何解决此问题?

1 Answers

Doris是一个分布式数据库,这里对于排序问题和 MySQL 的行为可能会有所不同,尤其是在临时表和排序操作上。这是因为分布式数据库通常需要在不同的节点上并行处理查询,这可能导致数据顺序和 MySQL 中的顺序表现不一致。所以,为了保持结果一致,你只能做一些调整