zoukankan      html  css  js  c++  java
  • SQL-23 对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列

    这题需要注意 

    题目描述

    对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列
    CREATE TABLE `salaries` (
    `emp_no` int(11) NOT NULL,
    `salary` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`from_date`));

    输入描述:

    输出描述:

    emp_nosalaryrank
    10005 94692 1
    10009 94409 2
    10010 94409 2
    10001 88958 3
    10007 88070 4
    10004 74057 5
    10002 72527 6
    10003 43311 7
    10006 43311 7
    10011 25828 8

    sql:

    SELECT s1.emp_no, s1.salary, COUNT(DISTINCT s2.salary) AS rank
    FROM salaries AS s1, salaries AS s2
    WHERE s1.to_date = '9999-01-01'  AND s2.to_date = '9999-01-01' AND s1.salary <= s2.salary
    GROUP BY s1.emp_no
    ORDER BY s1.salary DESC, s1.emp_no ASC
    

      

  • 相关阅读:
    AngularJS依赖注入
    transclude 嵌入
    收藏的文章
    mysql
    jquery的deferred对象
    restrict取值
    AngularJs碎片笔记
    js工具函数
    canvas解决画图模糊
    去体湿
  • 原文地址:https://www.cnblogs.com/kexiblog/p/10684265.html
Copyright © 2011-2022 走看看