作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] 加总前n笔资料的语法
时间Fri Oct 4 13:36:36 2013
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