分析函数row_number()每次查询的结果会有几条偏差

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】在使用分析函数row_number()时,同样的sql查询多次,但是结果却存在着几条差异。
【背景】使用row_number()函数查询过滤分区排序为1
【业务影响】
【StarRocks版本】3.1.1-e022963
【集群规模】3fe(3 follower)+3be(fe与be混部),服务都正常
【机器信息】64C/128G/千兆
【联系方式】社区9群-Kenneth
【附件】


建表语句:
CREATE TABLE dw_table_name (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT “主键id”,
vi varchar(300) NULL COMMENT “”,
dler_code varchar(300) NULL COMMENT “组织代码”,
short_name varchar(300) NULL COMMENT “组织简称”,
op_date1 varchar(300) NULL COMMENT “”,
is_count varchar(300) NULL COMMENT “(0-否,1-是)”
) ENGINE=OLAP
PRIMARY KEY(id)
DISTRIBUTED BY HASH(id)
PROPERTIES (
“replication_num” = “3”,
“in_memory” = “false”,
“enable_persistent_index” = “false”,
“replicated_storage” = “true”,
“compression” = “LZ4”
);
样例数据:

5 LG4AC10KA109 CV11 清城 2022-12-06 09:22:31 1
11 LG4AC10KA112 CV22 沪宁 2022-12-11 17:36:48 1
18 LG4AC11KA108 CV17 清城 2022-12-06 09:22:04 1

数据有持续写入吗?

没有,数据是初始化数据,还没有新数据写入。

把where num = 1删了执行多次结果还会变化吗?
另外也试下is_count=‘1’

数据不会变化:
只查:num = 1记录数一直为:787797
只查:is_count = 1记录数一直为:951813

这个可能是因为分布式查询结果排序不固定导致的。举个简单的例子:
a b c d
1 1 1 1
1 1 1 2
row_num() over (partition by a order by b,c) as num
此时的结果可能是(结果1)
a b c d num
1 1 1 1 1
1 1 1 2 2
也可能是(结果2)
a b c d num
1 1 1 1 2
1 1 1 2 1
此时如果查询是where num=1 and d=2,如果窗口计算后是结果1,那查询结果就是0;如果如果窗口计算后是结果2,那查询结果就是1。
如果期望结果不变,可以用rank函数替代row_num函数

好的,谢谢,我试下。