데이터베이스의 두 필드에 대해 고유 한 SQL


84

데이터베이스 테이블에서 서로 다른 두 필드의 고유 한 조합을 얻을 수 있습니까? 그렇다면 SQL 예제를 제공 할 수 있습니까?

답변:


128

간단히 :

select distinct c1, c2 from t

또는

select c1, c2, count(*)
from t
group by c1, c2

에 의해, 데이터 그룹을 따라 별개보다 느리다
noizer

5
그보고를 들어 Operand should contain 1 column(s)오류, 문제는 당신이 아마하고있는 것입니다 select distinct(c1, c2) from t그리고 당신은 여기에 괄호를 사용할 수 없습니다. 그것이 내가 여기에 온 방법입니다.
BookOfGreg

16

두 필드에서만 고유 한 값을 원하고 그와 함께 다른 필드를 반환하려는 경우 다른 필드에는 어떤 종류의 집계 (합계, 최소값, 최대 값 등)가 있어야하며 구분하려는 두 열이 표시되어야합니다. group by 절. 그렇지 않으면 Decker가 말한 것과 같습니다.


7

SQL 아래의 두 열 사용으로 구별되는 결과를 얻을 수 있습니다.

SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE

5

원하는대로 하나의 열로만 그룹화하려면 쿼리를 중첩 할 수 있습니다.

select c1, count(*) from (select distinct c1, c2 from t) group by c1

3

내 어리석은 생각을 공유하십시오.

아마도 c1에서만 구별을 선택할 수 있지만 c2에서는 선택할 수 없으므로 구문은 각 열에 대한 한정자 가 select ([distinct] col)+어디에 있을 수 있습니다 distinct.

그러나 생각한 후에는 단 하나의 열에서만 구별되는 것이 넌센스 라는 것을 알았습니다 . 다음 관계를 취하십시오.

   | A | B
__________
  1| 1 | 2
  2| 1 | 1

우리 select (distinct A), B가 그렇다면 적절한 B것은 A = 1무엇입니까?

따라서 distinctstatement.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.