Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL GROUP BY 절은 DISTINCT 절처럼 어떻게 작동합니까?


집계 함수를 사용하지 않고 SELECT 문에서 GROUP BY 절을 사용하면 DISTINCT 절처럼 작동합니다. 예를 들어, 다음 표가 있습니다 -

mysql> Select * from testing;
+------+---------+---------+
| id   | fname   | Lname   |
+------+---------+---------+
|  200 | Raman   | Kumar   |
|  201 | Sahil   | Bhalla  |
|  202 | Gaurav  | NULL    |
|  203 | Aarav   | NULL    |
|  204 | Harshit | Khurana |
|  205 | Rahul   | NULL    |
|  206 | Piyush  | Kohli   |
|  207 | Lovkesh | NULL    |
|  208 | Gaurav  | Kumar   |
|  209 | Raman  | Kumar    |
+------+---------+---------+
10 rows in set (0.00 sec)

MySQL은 컬럼 'Lname'에 DISTINCT 절을 사용하여 다음과 같은 결과 집합을 반환합니다.

mysql> select Distinct LNAME from testing;
+---------+
| LNAME   |
+---------+
| Kumar   |
| Bhalla  |
| NULL    |
| Khurana |
| Kohli   |
+---------+
5 rows in set (0.00 sec)

이제 다음과 같이 GROUP BY 절을 사용하여 DISTINCT를 사용하여 얻은 것과 동일한 결과 집합을 얻을 수 있습니다 -

mysql> Select LNAME from testing GROUP BY Lname;
+---------+
| LNAME   |
+---------+
| NULL    |
| Bhalla  |
| Khurana |
| Kohli   |
| Kumar   |
+---------+
5 rows in set (0.04 sec)

GROUP BY 절을 사용하여 MySQL 쿼리에서 반환된 결과 집합이 정렬되어 있는 것과 대조적으로 DISTINCT 절을 사용하여 MySQL 쿼리에서 반환된 결과 집합이 정렬되지 않은 MySQL에서 반환된 두 결과 집합의 차이점을 확인할 수 있습니다.