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

Làm cách nào để lấy bản ghi đầu tiên và bản ghi cuối cùng cho mỗi nhóm trong SQL Server 2008?

Làm thế nào về việc sử dụng ROW_NUMBER :

SQL Fiddle

WITH Cte AS(
    SELECT *,
        RnAsc = ROW_NUMBER() OVER(PARTITION BY [group] ORDER BY val),
        RnDesc = ROW_NUMBER() OVER(PARTITION BY [group] ORDER BY val DESC)
    FROM tbl
)
SELECT
    id, [group], val, start, [end]
FROM Cte
WHERE
    RnAsc = 1 OR RnDesc = 1
ORDER BY [group], val


  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 sao đây là Quét lập chỉ mục mà không phải là Tìm kiếm chỉ mục?

  2. SQL Nhận lần xuất hiện cuối cùng của trường đối với mỗi hàng

  3. Tham số độ dài không hợp lệ được chuyển đến hàm LEFT hoặc SUBSTRING

  4. Làm cách nào để lấy địa chỉ IP máy khách từ chính SQL Server 2008?

  5. Tomcat, Java &SQL Server 2008 R2:Không thể tạo trình điều khiển JDBC của lớp '' cho URL kết nối 'null'