У меня есть таблица в моей базе данных mysql, в которой есть два столбца: группа и подгруппа. Смотри ниже.
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
Я пытаюсь получить количество записей для каждой уникальной пары / подгруппы.
Вот чего я ожидал:
group, subGroup, count
grp-A, sub-A, 2
grp-A, sub-B, 1
grp-B, sub-A, 1
grp-B, sub-B, 2
Прочитав несколько сообщений, я попробовал несколько sql-запросов, используя group by, count (), но мне не удалось получить ожидаемый результат. Как я могу это исправить?
Ответы:
Я думаю, вы ищете:
SELECT a, b, COUNT(a) FROM tbl GROUP BY a, b
источник
a and b
выглядит как выражение для MySQL (на самом деле не уверен, будет ли это синтаксической ошибкой или он будет группироваться при возврате 0 или 1 - я бы предположил синтаксическую ошибку, особенно для полей varchar). Чтобы сгруппировать по нескольким столбцам, вы просто используете запятую.SELECT group,subGroup,COUNT(*) FROM tablename GROUP BY group,subgroup
источник
Вы должны сгруппировать оба столбца, группу и подгруппу, а затем использовать агрегатную функцию
COUNT()
.SELECT group, subgroup, COUNT(*) FROM groups GROUP BY group, subgroup
источник