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