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

Chọn một cột trong SQL không có trong Nhóm theo

Các cột trong tập hợp kết quả của select truy vấn với nhóm group by mệnh đề phải là:

  • một biểu thức được sử dụng như một trong nhóm group by tiêu chí hoặc ...
  • một hàm tổng hợp hoặc ...
  • một giá trị theo nghĩa đen

Vì vậy, bạn không thể làm những gì bạn muốn trong một truy vấn đơn giản. Điều đầu tiên cần làm là nêu vấn đề của bạn một cách rõ ràng, chẳng hạn như:

Đưa ra

create table dbo.some_claims_table
(
  claim_id     int      not null ,
  group_id     int      not null ,
  date_created datetime not null ,

  constraint some_table_PK primary key ( claim_id                ) ,
  constraint some_table_AK01 unique    ( group_id , claim_id     ) ,
  constraint some_Table_AK02 unique    ( group_id , date_created ) ,

)

Điều đầu tiên cần làm là xác định ngày tạo gần đây nhất cho mỗi nhóm:

select group_id ,
       date_created = max( date_created )
from dbo.claims_table
group by group_id

Điều đó cung cấp cho bạn tiêu chí lựa chọn mà bạn cần (1 hàng cho mỗi nhóm, với 2 cột:group_id và ngày tạo highwater) để hoàn thành phần đầu tiên của yêu cầu (chọn hàng riêng lẻ từ mỗi nhóm. Đó cần phải là một bảng ảo trong select truy vấn:

select *
from dbo.claims_table t
join ( select group_id ,
       date_created = max( date_created )
       from dbo.claims_table
       group by group_id
      ) x on x.group_id     = t.group_id
         and x.date_created = t.date_created

Nếu bảng không phải là duy nhất bởi date_created trong group_id (AK02), bạn có thể nhận được các hàng trùng lặp cho một nhóm nhất định.



  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ạo chế độ xem từ các bảng con có liên quan

  2. Gợi ý để triển khai bảng kiểm tra trong SQL Server?

  3. Giá trị trả về bằng SqlCommand

  4. chèn tệp XML trong SQL qua SSIS

  5. Chuỗi kết nối DB trong Web.config để sử dụng cơ sở dữ liệu .mdf đính kèm sẽ không hoạt động