Mam tabelę w mojej bazie danych mysql, która ma dwie kolumny: grupę i podgrupę. Zobacz poniżej.
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
Próbuję uzyskać liczbę rekordów dla każdej unikalnej pary / podgrupy.
Tego oczekuję:
group, subGroup, count
grp-A, sub-A, 2
grp-A, sub-B, 1
grp-B, sub-A, 1
grp-B, sub-B, 2
Po przeczytaniu kilku postów wypróbowałem kilka zapytań sql używając group by, count (), ale nie udało mi się uzyskać oczekiwanego wyniku. Jak mogę to naprawić?
Odpowiedzi:
Myślę, że szukasz:
SELECT a, b, COUNT(a) FROM tbl GROUP BY a, b
źródło
a and b
wygląda jak instrukcja do MySQL (właściwie nie jestem pewien, czy byłby to błąd składniowy, czy też zgrupowałby się na zwrocie 0 lub 1 - założyłbym błąd składni, szczególnie dla pól varchar). Aby pogrupować według wielu kolumn, wystarczy użyć przecinka.SELECT group,subGroup,COUNT(*) FROM tablename GROUP BY group,subgroup
źródło
Musisz zgrupować obie kolumny, grupę i podgrupę, a następnie użyć funkcji agregującej
COUNT()
.SELECT group, subgroup, COUNT(*) FROM groups GROUP BY group, subgroup
źródło