LeetCode DataBase

作者: 033a1d1f0c58 | 来源:发表于2016-07-24 21:25 被阅读255次

    Problems

    https://leetcode.com/problemset/database/

    175. Combine Two Tables

    # Write your MySQL query statement below
    select FirstName,LastName,City,State
    from Person left join Address 
    on Person.PersonId = Address.PersonId;
    

    176. Second Highest Salary

    # Write your MySQL query statement below
    select max(Salary) as SecondHighestSalary
    from Employee 
    where Salary < (select max(Salary) from Employee);
    

    177. Nth Highest Salary

    select * from tablename limit 0,1
    

    即取出第一条记录。

    select * from tablename limit 1,1
    

    第二条记录

    CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
    BEGIN
    declare M int;
    set M=N-1;
      RETURN (
          # Write your MySQL query statement below.
          select  distinct Salary from Employee order by Salary desc limit M , 1
      );
    END
    

    178. Rank Scores

    # Write your MySQL query statement below
    select Score,(select count(1)+1
                    from (select distinct Score ss
                            from Scores
                         ) tmp
                    where ss > Score
                  ) Rank
    from Scores
    order by Score desc
    

    180. Consecutive Numbers

    # Write your MySQL query statement below
    select distinct l1.Num as ConsecutiveNums
    from Logs l1,Logs l2,Logs l3
    where l1.Id = l2.Id - 1 and l1.Id = l3.Id - 2 and l1.Num = l2.Num and l2.Num = l3.Num;
    

    181. Employees Earning More Than Their Managers

    # Write your MySQL query statement below
    select a.Name as Employee
    from Employee a,Employee b
    where a.ManagerId = b.Id and a.Salary > b.Salary;
    

    182. Duplicate Emails

    # Write your MySQL query statement below
    select Email
    from Person
    group by Email
    having count(1) > 1;
    

    183. Customers Who Never Order

    # Write your MySQL query statement below
    select Name as Customers
    from Customers
    where Id not in
    (
        select distinct CustomerId
        from Orders
    );
    

    184. Department Highest Salary

    # Write your MySQL query statement below
    select Department.Name Department,Employee.name Employee,Salary
    from 
    (
        select Department.Name,Max(Salary) maxs
        from Department,Employee
        where Employee.DepartmentId = Department.Id
        group by Department.Name
    ) tmp,Department,Employee
    where tmp.Name = Department.Name and Employee.DepartmentId = Department.Id and Salary = maxs;
    

    185. Department Top Three Salaries

    # Write your MySQL query statement below
    select d.Name Department,e.name Employee,Salary
    from Employee e,Department d
    where DepartmentId = d.Id and (select count(distinct(e2.Salary))
                                 from Employee e2
                                 where e.DepartmentId = e2.DepartmentId and e.Salary < e2.Salary) < 3
    order by d.Id,Salary desc;
    

    196. Delete Duplicate Emails

    # Write your MySQL query statement below
    delete a
    from Person a,Person b
    where a.Email = b.Email and a.Id > b.Id;
    

    197. Rising Temperature

    # Write your MySQL query statement below
    select a.Id
    from Weather a,Weather b
    where TO_DAYS(a.Date)=TO_DAYS(b.Date)+1 and a.Temperature > b.Temperature;
    

    262. Trips and Users

    # Write your MySQL query statement below
    select Request_at Day,round(sum(case when Status = 'completed' then 0 else 1 end) / count(1) ,2) 'Cancellation Rate'
    from Trips 
    where Client_Id in
    (
        select Users_Id
        from Users
        where Banned = 'No' and Role = 'client'
    ) and Request_at >= '2013-10-01' and Request_at <= '2013-10-03'
    group by Request_at;
    

    相关文章

      网友评论

        本文标题:LeetCode DataBase

        本文链接:https://www.haomeiwen.com/subject/blkgjttx.html