2014-02-13 2 views
0

이렇게 광산 결과 데이터를 쿼리합니다.열을 기반으로 고유 한 행 선택

Id Size 
123  1 
123  1 
123  2 
123  2 
134  1 
134  1 
134  2 

나는 결과는 위 두 개의 테이블을 조인의 결과였다

Id Size 
123  1 
123  2 
134  1 
134  2 

처럼 나에게 중복 크기를 제거 카운트를 얻을합니다. 문제는이 경우 별개로 사용할 수 없다는 것입니다. 여기

테이블이

Table1: 
    Id Created ... .. .. .. 
    123 date1 .... 
    134 date2 .... 

Table2:  
Id Size 
123  1 
123  2 
134  1 
134  2 

을 얼마나입니다 내 CreatedDate에 따라 표에서 선택 쿼리는 사용자가 별개의 크기를받을 수 있나요 어떻게

select count(*) 
from table1 

join table2 
on table1.id = table2.id 

where table1.creates between '' and ''. 

등이 있습니다.

select count (distinct table2.size)를 사용하면 모든 행에 대해 1과 2 만 반환됩니다.

답변

0
SELECT DISTINCT Id, Size 
    FROM table1 

고유 ID 및 크기 조합의 목록을 제공해야합니다.

+0

예 작동해야합니다. 좀 더 정확하게하려면 SELECT DISTINCT ID, 크기 FROM table1, table2 WHERE table1.Id = table2.Id AND table1.creates between ''and '' – SNathan

0
select count(distinct table1.id, table2.size) 
from table1 

join table2 
on table1.id = table2.id 

where table1.creates between '' and '' 
  • 은 ... 때때로의 해결책이 그리 명확 sqlfiddle

라이브 작업 참조 :

UPDATE : 또 다른 방법

select count(*) from (
    select distinct table1.id, table2.size 
    from table1 

    join table2 
    on table1.id = table2.id 

    where table1.creates between '' and '' 
) sq 
+0

count는 행 자체가 아니라 개수 만 표시합니다. – Codeman

+0

답변 해 주셔서 감사합니다. 위에서 언급 한 것처럼 count()가 보이지 않습니다. ','근처의 구문이 잘못되었습니다. 사용해야하는 구문이 다른가요? – user3285499

+0

@ Pheonixblade9 글쎄, 질문에 대해서는 행에 관한 것이 아니라 개수에 관한 질문이 있습니다. – fancyPants

관련 문제