728x90
반응형
SELECT 문을 실행하다 보면 여러 개의 같은 데이터를 반환하게 된다. 이때 중복된 데이터를 제거하고 싶다면 DISTINCT나 GROUP BY를 사용하면 된다. 예를 들어 아래와 같은 TABLE이 있다고 가정하자.
machID가 01인 Machine을 불러오는 Query를 작성해 보자.
SELECT FIELD명 FROM TABLE명 WHERE machID='01';
Query를 전송하면 다음과 같은 결과를 나타나는데, 이때 '01'이라는 값이 중복되어 호출된다. 이러한 중복을 제거하기 위해서 사용하는 SQL 명령어가 DISTINCT, GROUP BY이다.
e.g) DISTINCT문
SELECT DISTINCT FIELD명 FROM TABLE명 WHERE machID='01';
e.g) GROUP BY문
SELECT FIELD명 FROM TABLE명 WHERE machID='01' GROUP BY machID;
그렇다면 동일 기능을 하는 두 구문의 차이는 무엇일까?
- DISTINCT : 중복을 없애주지만 정렬을 하지는 않는다.
- GROUP BY : 중복을 없애주고 정렬도 해준다.
GROUP BY 가 하는 일이 더 많기 때문에 속도면에서 불리할 수 있으므로 상황에 맞게 사용하면 될 것이다.
728x90
반응형
'DB > MySQL' 카테고리의 다른 글
[MySQL] CHECK문을 이용한 제약 조건 설정 (0) | 2021.04.23 |
---|---|
[MySQL] Cursor (0) | 2021.04.20 |
[MySQL] Stored Procedure, Function (0) | 2021.04.19 |
[MySQL] 사용자 검색/추가/삭제 및 권한 설정 (0) | 2021.04.16 |
[MySQL] SQL Server 접속하기 (Using Workbench) (0) | 2021.04.16 |