이의 말을하자 선택한 열을 무시 :MySQL의 : DISTINCT 사용하는 경우
내 테이블에 콜라, COLB 및 COLC를 조회 할.
나는 DISTINCT 값을보고 싶지만 colA를 구별 기준으로 삼기를 원하지 않습니다.
생략 colA는 옵션이 아닙니다.
해당 쿼리를 구성하는 가장 좋은 방법은 무엇입니까?
이의 말을하자 선택한 열을 무시 :MySQL의 : DISTINCT 사용하는 경우
내 테이블에 콜라, COLB 및 COLC를 조회 할.
나는 DISTINCT 값을보고 싶지만 colA를 구별 기준으로 삼기를 원하지 않습니다.
생략 colA는 옵션이 아닙니다.
해당 쿼리를 구성하는 가장 좋은 방법은 무엇입니까?
나는 임시 테이블의 구문을 잘 모릅니다, 그래서 당신은 =)
Select Distinct ColB, ColC into @Temp
From SomeTable
Where (predicates)
Select ColA, ColB, ColC
From SomeTable
Inner Join @Temp on (SomeTable.ColB = @Temp.ColB and SomeTable.ColC = @Temp.ColC)
Where (predicates) /* Added for comments */
희망이 도움이 바랍니다 의사합니다.
그냥 SomeTable의 사본을 생산하지 않을까요? 내부 조인은 @Temp의 정확히 한 행과 일치합니다. –
내부 조인은 열 값을 포함하고 다른 값을 포함하지 않는 모든 행과 일치합니다. – Immersive
예, SomeTable의 모든 행 (조건 자와 일치)은 @Temp 테이블에 (ColB, ColC) 쌍을 갖습니다. –
두 가지 경우가 있습니다. 의 당신은 데이터
A B C (columns)
a b c1
a b c2
(A)의 고유 값을 복용 있다고 가정 해 봅시다, B는 하나의 결과를 제공 (A, B), C. 그래서 질문은 당신의 모든 값을보고 싶어 할 것입니다 열 두 값 C 또는 열 A와 B의 고유 한 값 각각에 대해 하나의 값을 가질 수 있습니까?
당신이 C의 한 값을보고 싶은 경우 다음
SELECT DISTINCT A, B, C FROM YourTable WHERE ROW(A,B) IN
(SELECT A, B FROM YourTable
GROUP BY A, B)
당신을 제공합니다 C에 대한 모든 값을보고 싶다면, 당신은, 다른 한편으로
SELECT A, B, MAX(C) FROM YourTable
GROUP BY A, B
을 쓸 수 있습니다 그. 이 마지막 대안은 테이블에 다른 열이있는 경우 필요합니다.
첫 번째 옵션은 좋아 보이지만 SELECT DISTINCT A, B, C에 해당하는 두 번째 옵션은 아닙니다. –
@Keith - 다른 열이 없으면 동일하지만 대답은 "테이블에 다른 열이 있으면이 마지막 대안이 필요합니다." – mdma
여분의 열이있는 경우 SELECT DISTINCT A, B, C가 작동하지 않는 것을 이해하지 못합니다. –
http://stackoverflow.com/questions/1918556/sql-select-distinct-values-from-1-column 가능한 복제본. – Nitrodist