zoukankan      html  css  js  c++  java
  • MYSQL-实现sqlserver- row_number() over(partition by order by) 分组排序功能

    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;
  • 相关阅读:
    yum只下载不安装的方法
    在VS2008下编译Qt4.4.x
    Linux sh脚本异常:bad interpreter: No such file or directory
    动态链接库dll,静态链接库lib, 导入库lib 转
    Accumulation Buffer(累积缓存)
    mysql中ip和整数的转换
    开车撞人了!
    windows 下getc()返回0x1A表示EOF
    NPC问题
    关于普华永道、麦肯锡和IBM的笑话
  • 原文地址:https://www.cnblogs.com/neughj/p/4974075.html
Copyright © 2011-2022 走看看