看板 Database 關於我們 聯絡資訊
select t3.Total from ( select sum(Unit) as Total, count(*) as Rank from Table t1,( select ID,Unit from Table order by Unit,ID ) t2 where (t1.Unit > t2.Unit) or (t1.Unit = t2.Unit and t1.ID >= t2.ID) group by t1.ID ) t3 where t3.Rank = 5 or t3.Rank = 10 or t3.Rank = 20 ps. 因為我不知道你的「依大小排序」是怎麼個排法 我目前是依照 Unit 由小到大排,如果 Unit 一樣的話再依 ID 由小到大排 然後要求幾個總和只要改紅色的條件式即可 ※ 引述《pttsasho (sasho)》之銘言: : 假設我有一Table : 裡面共有100列的資料,每列只有兩欄 ID、 Unit : 我希望可以依大小排序後,求得前5筆unit的總和、前10筆unit的總和、前20筆unit的總和 : 我知道可以用sum以及limit來處理 : 不過這樣的話 要求幾個總和 就要分幾次查詢 : 如果希望只下一次指令的話 : 目前知道的只有利用子查詢的方式進行 : 不曉得是否有其他方式可以完成呢? : 謝謝各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.27.133