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

Làm thế nào để sử dụng nhóm theo trong truy vấn SQL Server?

Nói chung, khi bạn bắt đầu NHÓM, mọi cột được liệt kê trong CHỌN của bạn phải là một cột trong NHÓM của bạn hoặc một số cột tổng hợp của nó. Giả sử bạn có một bảng như thế này:

| ID | Name        | City        |
|  1 | Foo bar     | San Jose    |
|  2 | Bar foo     | San Jose    |
|  3 | Baz Foo     | Santa Clara |

Nếu bạn muốn lấy danh sách tất cả các thành phố trong cơ sở dữ liệu của mình và thử:

SELECT * FROM table GROUP BY City

... sẽ không thành công, vì bạn đang yêu cầu các cột (ID và Tên) không có trong mệnh đề GROUP BY. Thay vào đó, bạn có thể:

SELECT City, count(City) as Cnt FROM table GROUP BY City

... và điều đó sẽ giúp bạn:

| City        | Cnt |
| San Jose    |  2  |
| Santa Clara |  1  |

... nhưng sẽ KHÔNG nhận được ID hoặc Tên của bạn. Bạn có thể làm những việc phức tạp hơn với v.d. lựa chọn con hoặc tự tham gia, nhưng về cơ bản những gì bạn đang cố gắng thực hiện không thể thực hiện được như đã nêu. Hãy chia nhỏ vấn đề của bạn hơn nữa (bạn muốn dữ liệu trông như thế nào?) Và bắt đầu từ đó.

Chúc bạn thành công!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hành vi @@ rowcount không mong muốn bên trong UDF trong MS SQL 2019

  2. Làm thế nào để cam kết và khôi phục giao dịch trong máy chủ sql?

  3. Sử dụng Excel VBA để chạy truy vấn SQL

  4. bán kính tìm kiếm theo vĩ độ / kinh độ

  5. Có thể có bao nhiêu chỉ mục nhóm trong một bảng?