2017-04-03 2 views
0

은 내가왜 MySQL에서 DISTINCT가 먼저 나옵니 까?

SELECT 1, DISTINCT(table.field.id) FROM ... 

이 알려진 동작입니다 수행 할 때 내가

SELECT DISTINCT(table.field.id), 1 FROM ... 

을 수행 할 때 작동하지만 실패 쿼리가?

두 번째는 작동하지 않는 이유는 무엇입니까?

+11

'DISTINCT'는 기능이 아닙니다. SELECT DISTINCT는 SQL 언어의 절입니다. SELECT DISTINCT는 절의 모든 * 열에 적용됩니다. –

+1

DISTINCT는 "중복 행 제거"를 의미합니다. 열 수준에서는 의미가 없습니다. 이것이 왜 [SELECT와 선택된 표현식 목록 사이] (https://dev.mysql.com/doc/refman/5.7/en/select.html)에 머문 이유입니다. 제목에있는 질문에 대답하려면 : [SELECT' 문서 (https://dev.mysql.com/doc/refman/5.7/en/select.html)에 나와 있습니다. – axiac

답변

1

불행히도 나는 아직 코멘트를 추가 할 수 없습니다.

@ Gordon Linoff가 쓴 것은 정확히 맞습니다. SELECT 조항 또는 AGGREGATE 함수의 일부로 일반적으로 작동하는 DISTINCT으로 오류가 발생합니다. 결과 집합에서 고유 한 행을 반환하는 데 사용되며 집계 함수 내에서 고유 한 열 값을 강제하는 데 사용할 수 있습니다.

예 : SELECT DISTINCT * ...COUNT(DISTINCT COLUMN) 또는 SUM(DISTINCT COLUMN).

상세 정보에 대한 DISTINCT 인기 DB 엔진에있다 :

관련 문제