[mysql] MySQL을 사용하여 여러 열을 그룹화 할 수 있습니까?

GROUP BYMySQL 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 f.form_template_id, fV.tier_id

비슷한 결과를 제공하지만 다르게 정렬됩니다.


답변

group by fV.tier_id, f.form_template_id


답변

간단한 예를 사용하기 위해 사이트의 방문 페이지 당 고유 한 IP 주소를 요약해야하는 카운터가있었습니다. 기본적으로 페이지 이름과 IP로 그룹화됩니다. DISTINCT와 GROUP BY의 조합으로 해결했습니다.

SELECT pagename, COUNT(DISTINCT ipaddress) AS visit_count FROM log_visitors GROUP BY pagename ORDER BY visit_count DESC;


답변

동시에 두 열로 그룹을 선호하는 경우 (이 점을 적용해야 함)이 점을 보았습니다.

SELECT CONCAT (col1, '_', col2) AS Group1 ... GROUP BY Group1


답변

GROUP BY CONCAT(col1, '_', col2)