You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于聚合数据对表行排序?求替代自连接的简洁方案

更简洁的排序方案:用窗口函数替代自连接

嘿,我有个比自连接清爽得多的方法,用窗口函数就能轻松实现你要的排序需求!

思路说明

我们只需要给每一行计算出它所属label的data总和,把这个总和作为第一排序依据(升序),再用data本身作为同label内的排序依据(升序)就行,全程不用复杂的表关联。

实现代码

SELECT label, data
FROM sampleTable
ORDER BY 
    -- 计算每个label的data总和,作为排序的第一关键字
    SUM(data) OVER (PARTITION BY label) ASC,
    -- 同label内按data本身升序排列
    data ASC;

效果验证

这个语句会先按每个label的data总和从小到大排序:

  • c总和3 → 排第一
  • d总和4 → 排第二
  • a总和6 → 排第三(内部按data 1、5排序)
  • b总和8 → 排第四(内部按data 2、6排序)

最终输出和你期望的结果完全一致,而且代码比自连接简洁太多啦!

内容的提问来源于stack exchange,提问作者Linga Siva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:35:15