row_number()开窗函数执行结果错误

【详述】执行如下SQL,每次执行结果都不一样
select COUNT(*) from (select *,row_number() over (partition by XH,KCDM order by KSSJ ASC) rn from dwd_gxjx_bzks_kscj_pdf
where ds=‘20230914’ and XDLX=‘初修’) t1 where rn=1
【StarRocks版本】2.5.0
【集群规模】2fe(1 follower+1observer)+3be
【建表语句】
DROP TABLE IF EXISTS dwd_gxjx_bzks_kscj_pdf;
CREATE TABLE dwd_gxjx_bzks_kscj_pdf
(
Wid STRING COMMENT ‘主键’,
XH STRING COMMENT ‘学号’,
XM STRING COMMENT ‘姓名’,
LXDH STRING COMMENT ‘联系电话’,
RXLX STRING COMMENT ‘入校类型’,
DWDM STRING COMMENT ‘院系(单位)代码’,
DWMC STRING COMMENT ‘院系(单位)名称’,
ZYDM STRING COMMENT ‘专业代码’,
ZYMC STRING COMMENT ‘专业名称’,
BJDM STRING COMMENT ‘班级代码’,
BJMC STRING COMMENT ‘班级名称’,
KCDM STRING COMMENT ‘课程代码’,
KCMC STRING COMMENT ‘课程名程’,
XDFS STRING COMMENT ‘修读方式:必修、选修’,
KCLX STRING COMMENT ‘课程类型’,
KCXF DOUBLE COMMENT ‘课程学分’,
KSSJ STRING COMMENT ‘考试时间’,
XDLX STRING COMMENT ‘修读类型:初修、补考、重修’,
KCJD DOUBLE COMMENT ‘课程绩点’,
XQDM STRING COMMENT ‘学期代码’,
XQMC STRING COMMENT ‘学期名称’,
SSNJ STRING COMMENT ‘所属年级’,
BFZCJ DOUBLE COMMENT ‘百分制成绩’,
WJZCJ STRING COMMENT ‘五级制成绩’,
EJZCJ STRING COMMENT ‘二级制成绩’,
XXLB STRING COMMENT ‘学校类别:科技学院、本院’,
ds bigint COMMENT ‘天分区’
)engine=olap
duplicate key(Wid)
comment ‘本专科生考试成绩(不包含双创实践成绩和学分)’
partition BY RANGE(ds)()
distributed by hash(Wid) ;

row_number partiton by order by 同一个分区同一个order by保证不了每次 rk = 1 选的都是同一行,order by只有一列不能保证顺序,可能存在多次查询结果不同的情况

那想要实现我想要的这个逻辑,有什么办法吗

改成这个试一下 row_number() over (partition by XH,KCDM order by KSSJ,XH,KCDM ) as rk

试了一下,每次count的结果还是不一样

select current_version(); 确认下集群是哪个版本的,另外发一下 explain costs +sql 的结果文件

找到原因了,同事升级starrocks的时候,有一台BE给漏了 :sweat_smile:

灰度的时候,查询结果不对?