`

mysql实现Oracle中row_number over partition by

 
阅读更多
SELECT t1.empno,t1.sal,t1.deptno,
(SELECT COUNT( t2.sal)+1 FROM emp t2 WHERE t1.deptno=t2.deptno AND t1.sal > t2.sal) rn
FROM emp t1
ORDER BY t1.deptno,rn;

EMPNO        SAL        DEPTNO        RN
7934        1300.00        10        1
7782        2450.00        10        2
7839        5000.00        10        3
7369        800.00        20        1
7566        2975.00        20        2
7902        3000.00        20        3
7900        950.00        30        1
7654        1250.00        30        2
7521        1250.00        30        2
7846        1500.00        30        4
7844        1500.00        30        4
7845        1500.00        30        4
7499        1600.00        30        7
7698        2850.00        30        8

 

分享到:
评论

相关推荐

    mysql代码-查询每天前三条数据 按照交易价格大到小排序 相当于模拟Oracle Row_Number() OVER (partition by date ORDER BY pay desc)

    首先,`ROW_NUMBER() OVER (PARTITION BY date ORDER BY pay DESC)`是Oracle SQL中的一个窗口函数表达式,它会为每个`date`分区内的数据行分配一个行号,按照`pay`列的降序排列。这意味着在每一天内,交易价格最高的...

    Oracle到mysql转换的问题总结.docx

    - 序列化函数:Oracle的`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`, 在MySQL中可以使用用户变量和`IF`函数模拟实现。 例如,Oracle中的`ROW_NUMBER()`函数转换为MySQL,可以这样写: ```sql Oracle: ...

    Oracle到mysql转换的问题总结.doc

    - `ROW_NUMBER()`窗口函数:MySQL无此功能,但可以利用用户变量模拟实现,如Oracle的`row_number() over(partition by col1 order by col2)`。 - `ROWNUM`行号:MySQL中没有直接等价的行号,需用用户变量模拟,如...

    MySQL分组排序功能

    本文将详细介绍如何在MySQL中实现类似Oracle中`row_number() over (partition by)`的功能,即按照指定列进行分组,并在每个分组内进行排序。 #### 实现步骤详解 ##### 1. 创建示例表与数据 首先,我们需要创建一...

    Oracle到mysql转换的问题总结要点.doc

    - 序列化函数:Oracle的`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`在MySQL中需使用用户变量模拟,如示例所示。 - 行号`ROWNUM`:Oracle的行号在MySQL中需通过用户变量实现,与序列化函数的转换类似。 6...

    Oracle到mysql转换的问题总结[收集].pdf

    - Oracle的窗口函数`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`在MySQL中无法直接使用,需要借助用户变量来模拟。 - Oracle的行号`ROWNUM`在MySQL中没有直接等价物,同样需要利用用户变量来模拟。 在...

    .net生成sql分页高性能语句类

    这种语句通常基于“ROW_NUMBER() OVER(PARTITION BY...ORDER BY...)"窗口函数,这种方式可以在查询时仅扫描必要的数据行,显著提高性能。 以下是一些关键知识点: 1. **SQL分页原理**:SQL分页通常需要一个主键...

    分组排序选择需要一条

    sql 排序:row_number() over(partition by sjjl_id order by fksj desc,最优化的情况,里面放的有例子,大家可以参考

    肤浅的SQL分页代码,急需完善

    - ROW_NUMBER():在SQL Server中,可以使用窗口函数`ROW_NUMBER()`配合`OVER`子句进行分页,如`SELECT * FROM (SELECT ..., ROW_NUMBER() OVER(ORDER BY id) AS RowNum) AS T WHERE RowNum BETWEEN (PageNumber - 1...

Global site tag (gtag.js) - Google Analytics