GROUP BY 절이 없으면 MySQL이 반환하는 출력이 오도될 수 있기 때문입니다. 우리는 그것을 보여주기 위해 아래 주어진 '학생' 표에 다음 예를 제시하고 있습니다 -
mysql> Select * from Student; +------+---------+---------+-----------+ | Id | Name | Address | Subject | +------+---------+---------+-----------+ | 1 | Gaurav | Delhi | Computers | | 2 | Aarav | Mumbai | History | | 15 | Harshit | Delhi | Commerce | | 20 | Gaurav | Jaipur | Computers | +------+---------+---------+-----------+ 4 rows in set (0.00 sec) mysql> Select count(*), Name from Student; +----------+--------+ | count(*) | name | +----------+--------+ | 4 | Gaurav | +----------+--------+ 1 row in set (0.00 sec)
위 쿼리의 결과에서 볼 수 있듯이 그룹 함수 COUNT(*)의 출력을 테이블의 총 행 수로 반환하지만 'Name' 필드의 값 'Gaurav'는 무엇을 기반으로 하기 때문에 오해의 소지가 있습니다. , 열의 첫 번째 값이거나 열에 여러 번 저장된 경우 MySQL이 반환합니다.
이제 GROUP BY 절을 사용하여 이 쿼리를 작성하면 결과 집합은 다음과 같습니다. -
mysql> Select count(*), name from student GROUP BY id; +----------+---------+ | count(*) | name | +----------+---------+ | 1 | Gaurav | | 1 | Aarav | | 1 | Harshit | | 1 | Gaurav | +----------+---------+ 4 rows in set (0.00 sec)
위의 결과 집합에서 GROUP BY 절의 도움으로 의미 있는 출력을 얻은 것을 관찰할 수 있습니다.