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

MySQL - Sự khác biệt giữa GROUP BY và DISTINCT là gì?

Bản sao của

Có bất kỳ sự khác biệt nào giữa GROUP BY và DISTINCT

Nó đã được thảo luận ở đây

Nếu vẫn muốn nghe ở đây

Nhóm theo từng nhóm và phân biệt có công dụng riêng của nó.

Distinction được sử dụng để lọc các bản ghi duy nhất ra khỏi các bản ghi đáp ứng tiêu chí truy vấn.

Nhóm theo mệnh đề được sử dụng để nhóm dữ liệu mà các hàm tổng hợp được kích hoạt và kết quả được trả về dựa trên các cột trong mệnh đề nhóm theo. Nó có những hạn chế riêng, chẳng hạn như tất cả các cột trong truy vấn chọn ngoài các hàm tổng hợp phải là một phần của mệnh đề Group by.

Vì vậy, mặc dù bạn có thể có cùng một dữ liệu được trả về bởi mệnh đề riêng biệt và nhóm theo mệnh đề, nhưng tốt hơn hết bạn nên sử dụng dữ liệu khác biệt. Xem ví dụ dưới đây

select col1,col2,col3,col4,col5,col6,col7,col8,col9 from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9

có thể được viết là

select distinct col1,col2,col3,col4,col5,col6,col7,col8,col9 from table

Nó làm cho cuộc sống của bạn dễ dàng hơn khi bạn có nhiều cột hơn trong danh sách lựa chọn. Nhưng đồng thời nếu bạn cần hiển thị sum (col10) cùng với các cột trên thì bạn sẽ phải sử dụng Group By. Trong trường hợp đó, phân biệt sẽ không hoạt động.

ví dụ:

select col1,col2,col3,col4,col5,col6,col7,col8,col9,sum(col10) from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9

Hy vọng điều này sẽ hữu ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng số thành số viết tắt

  2. mysqldump từ một truy vấn

  3. cakephp 3.0 nhận các giá trị trong hai cột làm một

  4. Bản cập nhật Flask-SQLAlchemy đang tạo một bản ghi mới trong MySQL

  5. Làm cách nào để kết nối ứng dụng Android với cơ sở dữ liệu MySQL?