Ответ 1
GROUP BY col1, col2, col3
Возможно ли GROUP BY
более одного столбца в запросе MySQL SELECT
? Например:
GROUP BY fV.tier_id AND 'f.form_template_id'
GROUP BY col1, col2, col3
Да, вы можете группировать несколько столбцов. Но вы не можете получить правильный ответ.
select * from table group by col1, col2
Где,
col1 получил первое предпочтение от группировки, а col2 получил второе предпочтение. Поскольку mysql дает предпочтение слева направо.
group by fV.tier_id, f.form_template_id
Да, но что означает группировка более двух столбцов? Ну, это то же самое, что и группировка по каждой уникальной паре в строке. При заказе столбцов изменяется порядок сортировки строк.
В вашем примере вы должны написать
GROUP BY fV.tier_id, f.form_template_id
Между тем, код
GROUP BY f.form_template_id, fV.tier_id
даст похожие результаты, но отсортирован по-разному.
Чтобы использовать простой пример, у меня был счетчик, который должен был суммировать уникальные 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;
GROUP BY CONCAT(col1, '_', col2)