SQLite EXCLUDE TIES:排除同分记录时,为什么当前这一行仍然参加求和 做一张按评分展示的汇总表,要求暂时排除与当前记录同分的其他记录,却保留当前记录本身。EXCLUDE TIES可以表达这个关系,但如果把TIES理解为把整组并列项全删掉,就会算出另一份结果。整组排除对应的是EXCLUD... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite ntile 分桶:分数相同也会跨组,多出的行又先分给谁 把任务按分数排成三批时,很容易把 ntile(3) 理解成“相同分数一定放在一组”。实际上,它的目标是按窗口顺序让各桶的行数尽量均匀。相同分值碰上桶边界,可以被拆开;总行数不能整除时,靠前的桶会多分到一行。下面用八条... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite lag 的窗口边界:frame 只剩当前行,为什么仍然能读到上一行 为了让查询只处理当前记录,把窗口框架写成 CURRENT ROW 到 CURRENT ROW,lag 仍然返回上一条内容。这里需要先看函数本身的取行规则:SQLite 的 lag 按分区中的相对位置取值,忽略fram... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
SQLite 累计窗口:时间相同的两条记录,ROWS 和 RANGE 为什么算得不同 同一时刻的记录要不要一起算进去库存流水里,同一时刻可能有两笔入库。一张逐笔明细希望第一笔之后就显示余额,另一张看板却希望同一时刻的所有记录都显示该时刻结束后的余额。两种累计都合理,但计算口径不同。只写“按时间求累计和... yunqueblog/ 技术教程/ 2026-10-01/ 4 阅读
SQL 窗口排名并列处理:row_number、rank 和 dense_rank 怎么选 “取每组前三名”不是一个足够完整的查询需求:是最多三条记录,还是所有占据前三个名次的人,或者前三档不同分数?只要存在并列,三种答案就可能不同。本文以 PostgreSQL 18 为语义基准,使用只读 VALUES 样... yunqueblog/ 技术教程/ 2026-10-01/ 4 阅读