Lệnh GROUP By trong SQL

sql

(Danh Nguyen) #1

Hiện tại thì đang dùng Xampp 4.7.4
Mình có table “numbers” như sau:

ID STT NHOM
1 so1 nhom2
2 so2 nhom3
3 so3 nhom3

Truy vấn SQL:

SELECT count(ID),ID,STT,NHOM
FROM numbers
GROUP BY NHOM
ORDER BY count(ID) DESC;

Thì nó hiện thị là:

count(id) ID STT NHOM
2 2 so2 nhom3 // tại sao ID và STT không phải là 3
1 1 so1 nhom2

Phần này mình có lên W3 tham khảo: https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_groupby_orderby và chạy đúng như mình nghĩ.

Không biết là do phiên bản này lỗi hay do mình viết sai nữa.


(Trần Hoàn) #2

Có thể nó là một dạng Undefined Behavior chăng? Dù sao thì bạn truy vấn thế, xét theo nghĩa cảnh, nó có thể trả về ID và STT của bất kỳ 1 record nào có NHOM là nhom3, không nhất thiết là record có primary key cao nhất hoặc thấp nhất.


(null) #3

GROUP BY dùng để tổng hợp kết quả chứ không phải để liệt kê, thực tế bạn chỉ quan tâm count(ID), NHOM, còn ID,STT không sử dụng được.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?