2012-05-15 1 views
0

12 개의 고유 태그 (TagID)가있는 80,000 개 이상의 행 (태그 피드)을 가진 단일 테이블을 가지고 있으므로 12 개의 행만 반환하려고합니다.DB2 9.5. 첫 번째 열의 고유 값 선택, 다른 두 열 값보기

(MAX) 날짜 열을 기준으로 각 태그 ID의 최신 값을 찾고 싶습니다. 그래서 정말 내가 tagid에 DISTINCT를 원하고 나는 새로운 일에 대한 기록이 있고 tagid, 날짜와 장소 열

답변

0
SELECT date, tagid, location 
FROM table a 
WHERE date = (
    SELECT MAX(date) 
    FROM table b 
    WHERE a.key1 = b.key1 
     AND a.key2 = b.key2 
     -- etc 
) 

당신이 원하는 무엇을 얻을 것인가를 표시해야합니다. 나는 아마도 WHERE a.tagid = b.tagid이 원하는 WHERE 절이 될 것이라고 추측하고 있지만, 행을 고유하게 만드는 다른 열이있는 경우이를 포함시켜야 할 수도 있습니다.

WITH x AS ( 
    SELECT datecol, 
     tagid, 
     location, 
     ROW_NUMBER() OVER (PARTITION BY tagid ORDER BY datecol DESC) AS rnum 
    FROM sometable 
) 
SELECT datecol, tagid, location FROM x WHERE rnum = 1 
; 
: 여기
0

는 하위 쿼리에있는 모든 키 열을 연결하지 않고 원하는 결과를 얻을 수있는 방법
관련 문제