SQL语句partitionby

empid       deptid      salary----------- ----------- ---------------------------------------
1           10          5500.00
2           10          4500.00
3           20          1900.00
4           20          4800.00
5           40          6500.00
6           40          14500.00
7           40          44500.00
8           50          6500.00
9           50          7500.00
需求:根据部门分组,显示每个部门的工资等级。
SQL脚本:
SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee
empid       deptid      salary                                  rank----------- ----------- --------------------------------------- --------------------
1           10          5500.00                                 1
2           10          4500.00                                 2
4           20          4800.00                                 1
3           20          1900.00                                 2
7           40          44500.00                                1
6           40          14500.00                                2
5           40          6500.00                                 3
9           50          7500.00                                 1
8           50          6500.00                                 2
SQL脚本:
SELECT *FROM
    (SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) R
     FROM employee) B
WHERE B.R =1
#只显示部门工资最高的
/******  ******/
 select *  from (
  select name,学科,成绩,ROW_NUMBER() over (PARTITION by 学科 order by 成绩 desc) as num
  from [XSBOOK].[dbo].[XKCJ]) T
  where T.num <= 3 order by T.学科
name       学科         成绩          num
---------- ---------- ----------- --------------------
李四         数学         98          1
李四         数学         95          2
张三         数学         93          3
张三         英语         92          1
张三         英语         92          2
李四         英语         90          3
李四         语文         85          1
李四         语文         81          2
张三         语文         80          3
语法形式:ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2)
解释:根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。
以上是 SQL语句partitionby 的全部内容, 来源链接: utcz.com/z/532122.html
