Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhận mức lương cao thứ hai cho mỗi người trong mysql

Bằng cách sử dụng hàm tổng hợp và tự tham gia, bạn có thể làm điều gì đó như

select a.*
from demo a
left join demo b on a.person_id = b.person_id
group by a.person_id,a.salary
having sum(a.salary < b.salary) = 1 /* 0 for highest 1 for second highest 2 for third and so on ... */

hoặc sử dụng biểu thức viết hoa hoàn chỉnh trong sum

having sum(case when a.salary < b.salary then 1 else 0 end)  = 1

Bản trình diễn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi nên lưu trữ vĩ độ và kinh độ chính xác đến mức nào?

  2. C # - MySQL và Microsoft SQL Server

  3. MySQL chọn các hàng trong đó tham gia bên trái là rỗng

  4. MySQL Nơi DateTime lớn hơn ngày nay

  5. Cách tạo khóa chính tổng hợp trong MySQL