2017-12-29 7 views
0

이것은 간단 할 수 있지만 SQL을 처음 사용하기 때문에이 작업을 정확하게 수행 할 수 없습니다.WHERE IN 절을 사용하는 SQL 쿼리

나는 다음과 같은 테이블이 있습니다

Existing table in SQL 내 요구 사항은

은 다음과 같습니다

내가 각 주파수, 나는 최신 날짜가 최신 날짜의 & 최대 버전이 필요합니다, 모든 희미한에 대한 필요를 . 예 : Dim 'A'에 대한 행이 하나 있습니다. & 'Monthly'가장 최근 날짜가 & 인 최신 날짜의 최대 버전입니다. Dim 'A'에 대한 또 다른 행이 있습니다. & 빈도 '주간'최신 날짜가 & 인 최신 날짜의 최대 버전입니다.

아무도 도와 주실 수 있습니까?

나는 있지만 정확한 값을 반환하지 다음 쿼리를 사용하여 시도 :

SELECT Dim, Frequency, Date, Version 
       FROM sample_tbl 
       WHERE (Frequency, Date, 
         Version) IN ( 
select Frequency, max(Date), max(Version) 
from sample_tbl 
group by 1 
); 
+0

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557을 읽고 수락 대답 –

+0

Postgres를 사용하고 있습니다 –

+0

가능한 [SQL - Postgres - 최신 날짜의 최대 값 반환] (https://stackoverflow.com/questions/48023183/sql-postgres-return-maximum-value-for-latest) -date) –

답변

1

I 포스트 그레스, 내가 distinct on 당신이 원하는 것을 생각 : 각 dim/frequency 조합에 대한

select distinct on (dim, frequency) s.* 
from sample_tbl s 
order by dim, frequency, date desc, version desc; 

이 하나를 반환 열. 이 행은 order by 절을 기반으로하는 첫 번째 행입니다.

+0

고든에게 감사드립니다. '월간'및 '주중'최신 날짜에 대한 최신 날짜를 가져올 수 있으며 이전에 Date & Frequency가 있었던 Dim의 모든 행을 선택할 수 있습니까? –

+0

@ParikshitShinge. . . 적절한 샘플 데이터와 원하는 결과를 가지고 다른 질문을하십시오. –

관련 문제