sqlserver管理mysql数据库_SQLServer数据库之MYSQL-实现sqlserver- row_number() over(partition by order by) 分组排序功能...

本文主要向大家介绍了SQLServer数据库之MYSQL-实现sqlserver- row_number() over(partition by order by) 分组排序功能,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

sqlserver:

with Result as

(

select SUM(F_DayValue) AS F_Value,F_ZZ_ttBuildID,F_EnergyItemCode

from T_EC_EnergyItemDayResult

where F_EnergyItemCode like ‘%000‘

and F_StartDay>=@ldStartDate and F_StartDay<=@ldEndDate

and F_ZZ_ttBuildID IN (select F_BuildID from T_BD_BuildBaseInfo)

group by F_ZZ_ttBuildID,F_EnergyItemCode

)

select a.F_Value,a.F_ZZ_ttBuildID,b.F_BuildName,a.F_EnergyItemCode,

ROW_NUMBER() over(partition by a.F_EnergyItemCode order by a.F_Value desc) as nsort

from Result a

left join T_BD_BuildBaseInfo b on a.F_ZZ_ttBuildID=b.F_BuildID

mysql:

CREATE TEMPORARY TABLE IF NOT EXISTS Result

(

select SUM(F_DayValue) AS F_Value,F_ZZ_ttBuildID,F_EnergyItemCode

from T_EC_EnergyItemDayResult

where F_EnergyItemCode like ‘%000‘

and F_StartDay>=V_ldStartDate and F_StartDay<=V_ldEndDate

and F_ZZ_ttBuildID IN (select F_BuildID from T_BD_BuildBaseInfo)

group by F_ZZ_ttBuildID,F_EnergyItemCode

);

CREATE TEMPORARY TABLE IF NOT EXISTS TMP01

(

select a.F_Value,a.F_ZZ_ttBuildID,b.F_BuildName,a.F_EnergyItemCode

from Result a

left join T_BD_BuildBaseInfo b on a.F_ZZ_ttBuildID=b.F_BuildID

);

select F_Value,F_ZZ_ttBuildID,F_BuildName,F_EnergyItemCode,nsort from (

select heyf_tmp.F_Value,heyf_tmp.F_ZZ_ttBuildID,heyf_tmp.F_BuildName,heyf_tmp.F_EnergyItemCode,@rownum

:=@rownum+1 ,

if(@pdept=heyf_tmp.F_EnergyItemCode,@rank:=@rank+1,@rank:=1) as nsort,

@pdept:=heyf_tmp.F_EnergyItemCode

from (

select F_Value,F_ZZ_ttBuildID,F_BuildName,F_EnergyItemCode from TMP01 order by F_EnergyItemCode ASC

,F_Value desc

) heyf_tmp ,(select @rownum :=0 , @pdept := null ,@rank:=0) a) T;

本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值