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

Nhóm postgresql theo cho nhiều dòng

Điều này trả về tất cả các hàng có trùng lặp :

SELECT employee_id, leave_date, no_of_days, leave_state
FROM   hr_holidays_by_calendar h
WHERE  EXISTS (
   SELECT -- select list can be empty for EXISTS
   FROM   hr_holidays_by_calendar
   WHERE  employee_id = h.employee_id
   AND    leave_date = h.leave_date
   AND    leave_state <> 'refuse'
   AND    ctid <> h.ctid
   )
AND    leave_state <> 'refuse'
ORDER  BY employee_id, leave_date;

Không rõ nơi leave_state <> 'refuse' nên áp dụng. Bạn sẽ phải xác định các yêu cầu. Ví dụ của tôi loại trừ các hàng có leave_state = 'refuse' (và leave_state IS NULL với nó!) hoàn toàn.

ctid là người đại diện của một người nghèo cho khóa chính không được tiết lộ (không xác định?) của bạn.

Có liên quan:



  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ìm nhóm các số liên tiếp lớn nhất trong một phân vùng

  2. Trả về các giá trị riêng lẻ null với postgres tablefunc crosstab ()

  3. Làm thế nào để kiểm tra xem lược đồ công khai PostgreSQL có tồn tại hay không?

  4. Cách chọn các hàng có sự kết hợp của 2 cột giống nhau

  5. SQLite to Postgres (Heroku) GROUP BY