Можно ли сгруппировать несколько столбцов, используя MySQL? - PullRequest
158 голосов
/ 03 декабря 2009

Возможно ли GROUP BY более одного столбца в запросе MySQL SELECT? Например:

GROUP BY fV.tier_id AND 'f.form_template_id'

Ответы [ 7 ]

238 голосов
/ 03 декабря 2009
GROUP BY col1, col2, col3
79 голосов
/ 06 января 2014

Да, вы можете группировать по нескольким столбцам. Например,

SELECT * FROM table
GROUP BY col1, col2

Результаты будут сначала сгруппированы по col1, а затем по col2. В MySQL предпочтение столбцам идет слева направо.

17 голосов
/ 03 июня 2014

Да, но что означает группировка по двум столбцам? Ну, это то же самое, что группировка по каждой уникальной паре в ряду. Порядок перечисления столбцов изменяет способ сортировки строк.

В вашем примере вы бы написали

GROUP BY fV.tier_id, f.form_template_id

Между тем код

GROUP BY f.form_template_id, fV.tier_id

даст аналогичные результаты, но отсортирован по-другому.

15 голосов
/ 03 декабря 2009
group by fV.tier_id, f.form_template_id
9 голосов
/ 10 февраля 2017

Чтобы использовать простой пример, у меня был счетчик, необходимый для суммирования уникальных IP-адресов для каждой посещенной страницы сайта. Который в основном группируется по pagename, а затем по IP. Я решил это с помощью комбинации DISTINCT и GROUP BY.

SELECT pagename, COUNT(DISTINCT ipaddress) AS visit_count FROM log_visitors GROUP BY pagename ORDER BY visit_count DESC;
2 голосов
/ 23 января 2018

Если вы предпочитаете (мне нужно применить это) группу по двум столбцам одновременно, я только что увидел этот пункт:

SELECT CONCAT (col1, '_', col2) AS Group1 ... GROUP BY Group1
2 голосов
/ 23 июля 2013
GROUP BY CONCAT(col1, '_', col2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...