2012-04-30 70 views
60

Tôi có một bảng trong db mysql có hai cột: nhóm và nhóm con. Xem bên dưới.Sử dụng nhóm theo hai trường và đếm trong SQL

group, subGroup 
grp-A, sub-A 
grp-A, sub-A 
grp-A, sub-B  
grp-B, sub-A 
grp-B, sub-B 
grp-B, sub-B 

Tôi đang cố gắng lấy số lượng bản ghi cho từng nhóm/nhóm phụ duy nhất.

Đây là những gì tôi mong đợi:

group, subGroup, count 
grp-A, sub-A, 2 
grp-A, sub-B, 1 
grp-B, sub-A, 1 
grp-B, sub-B, 2 

Sau khi đọc một số bài viết Tôi đã thử nhiều truy vấn sql sử dụng nhóm bằng, count(), nhưng tôi không quản lý để có được kết quả mong đợi. Làm thế nào tôi có thể sửa lỗi này?

Trả lời

107

Tôi nghĩ rằng bạn đang tìm kiếm: SELECT a, b, COUNT(a) FROM tbl GROUP BY a, b

+1

Xin chào Corbinb. Cảm ơn nhiều. nó đang làm việc. Tôi đã làm những gì bạn đang đề xuất nhưng insted của nhóm bởi a, b tôi đã nhóm bằng a và b. Cảm ơn một lần nữa – Marc

+3

'a và b' trông giống như một tuyên bố cho MySQL (không thực sự chắc chắn nếu nó sẽ là một lỗi cú pháp hoặc nếu nó sẽ nhóm trên 0 hoặc 1 trở lại - tôi sẽ giả định một lỗi cú pháp, đặc biệt là cho các lĩnh vực varchar) . Để nhóm trên nhiều cột, bạn chỉ cần sử dụng dấu phẩy. – Corbin

+1

Cảm ơn rất nhiều !! .. Vấn đề với tôi là tôi đã không thể cụm từ câu hỏi của tôi và dành rất nhiều thời gian googling cuối cùng đã hạ cánh ở đây cho một giải pháp đơn giản và chấm. –

6
SELECT group,subGroup,COUNT(*) FROM tablename GROUP BY group,subgroup 
+0

Thay vì đếm tôi cần toàn bộ chi tiết hồ sơ. Ví dụ, grpA có 2 nhóm con: subA và subB, vì vậy tôi cần lấy toàn bộ bản ghi cho từng nhóm con. Ai đó làm ơn giúp tôi với. @ user1127214 –

5

Bạn phải nhóm cả cột, nhóm và phân nhóm, sau đó sử dụng hàm tổng hợp COUNT().

SELECT 
    group, subgroup, COUNT(*) 
FROM 
    groups 
GROUP BY 
    group, subgroup 
+0

muộn, nhưng câu trả lời này thực sự đã cứu tôi !!! –

+1

Dường như một lỗi đánh máy cho tôi! = GroupName – csharpwinphonexaml

+0

Thay vì đếm tôi cần toàn bộ chi tiết hồ sơ. Ví dụ, grpA có 2 nhóm con: subA và subB, vì vậy tôi cần lấy toàn bộ bản ghi cho từng nhóm con. Ai đó làm ơn giúp tôi với. @farzane –

Các vấn đề liên quan