永发信息网

sql top sum 先取前5条后

答案:4  悬赏:0  手机版
解决时间 2021-04-05 13:10
  • 提问者网友:骑士
  • 2021-04-05 06:30
sql top sum 先取前5条后
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-04-05 08:09
子查询要用别名,如 select a.exp from (select subExp from tbxxx) as a

可以用下面的句型实现需求
select sum(id)/5 from (select top 5 id from sysobjects where id<100 order by id desc) as xx
全部回答
  • 1楼网友:傲气稳了全场
  • 2021-04-05 08:50


自己琢磨下怎么改。
  • 2楼网友:不甚了了
  • 2021-04-05 08:43
chengjiaoliang不明确,第一句可以这样写
select sum(a.chengjiaoliang) from(select top 5 chengjiaoliang from day_sh where daima = '600000' and riqi < '2010-05-13 00:00:00' order by riqi)a
  • 3楼网友:时间的尘埃
  • 2021-04-05 08:17

第一个SQL语句是语法错误,最外层查询的目标数据表为一个子查询,需要用一个别名来命名:select sum(chengjiaoliang) 
from (
select top 5 chengjiaoliang from day_sh 
where daima = '600000' and riqi < '2010-05-13 00:00:00' 
order by riqi
) s
第二个查询语法没问题,但是得到的不是你想要的结果吧。
这里还要提醒一下: 最好不要用top n来取有排序规定的前N条记录,因为这不能保证取出的N条数据就是这个排序规定下的前N条。最好用分析函数row_number() over来获取排序值,然后再取需要的记录。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯