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

truy vấn sql với tự tham gia

WITH ranked AS (
  SELECT
    *,
    rn = ROW_NUMBER() OVER (PARTITION BY RecId ORDER BY Dt DESC)
  FROM TableA
)
SELECT
  r1.Id,
  r1.Dt,
  r1.Stat,
  r1.RecId
FROM ranked r1
  INNER JOIN ranked r2 ON r1.RecId = r2.RecId AND r2.rn = 1
WHERE r1.Stat = 2

CẬP NHẬT sau khi cập nhật câu hỏi

WITH ranked AS (
  SELECT
    *,
    rn = ROW_NUMBER() OVER (PARTITION BY RecId ORDER BY Dt DESC)
  FROM TableA
)
SELECT
  Id,
  Dt,
  Stat,
  RecId
FROM ranked
WHERE Stat = 2 AND rn = 1


  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ên tệp SQL Server so với phiên bản

  2. Cách mã hóa tất cả các thủ tục được lưu trữ hiện có của cơ sở dữ liệu

  3. Làm thế nào để tạo DB trong SQL Express bằng cách sử dụng các lệnh SQL?

  4. Xem sp_execute đang làm gì

  5. THIẾT LẬP TEXTSIZE không hoạt động trong SQL Server? Kiểm tra điều này.