데이터 테이블이 입니다.입니다. 나는 내가 필요로하는 그래프, 매일매월, 일년 및 주당 최신 항목을 선택하는 방법?
- 마지막 항목을 생성 싶어 각 주에 대한
- 마지막 항목 매월
- 마지막 항목 매년
에 대한
다음과 같은 SQL 코드를 사용하면 last entry per day
을 가져올 수 있습니다.
다른 세 가지 결과를 얻으려면 어떻게해야합니까?
데이터 테이블이 입니다.입니다. 나는 내가 필요로하는 그래프, 매일매월, 일년 및 주당 최신 항목을 선택하는 방법?
에 대한
다음과 같은 SQL 코드를 사용하면 last entry per day
을 가져올 수 있습니다.
다른 세 가지 결과를 얻으려면 어떻게해야합니까?
당신은 window function으로 아주 우아하게이 문제를 해결 할 수 있습니다
주와 월 기간에 대한SELECT created_on, earned_value, planned_value, budgeted_cost
FROM (
SELECT created_on, earned_value, planned_value, budgeted_cost,
rank() OVER (PARTITION BY extract(year from created_on),
extract(doy from created_on)
ORDER BY created_on DESC) r
FROM history) sub
WHERE r = 1
ORDER BY created_on;
은 단순히 (1 월 1 일부터 계산, DOY = 올해 일) extract(week ...
에 extract(doy from created_on)
매개 변수를 변경할 수 있습니다 . 연간 데이터의 경우 첫 번째 extract()
만 필요하므로 두 번째 PARTITION
용어를 삭제해야합니다.
EXTRACT(WEEK FROM tt.created_on), EXTRACT(month FROM tt.created_on),EXTRACT(year FROM tt.created_on)
트릭을 수행했습니다.
SO, 매일
1 마지막 항목을 각 주에 대한
SELECT t.created_on,
t.earned_value,
t.planned_value,
t.budgeted_cost
FROM history t
JOIN (SELECT MAX(tt.created_on) 'maxtimestamp'
FROM history tt
GROUP BY EXTRACT(DAY FROM tt.created_on)) m ON m.maxtimestamp = t.created_on
2 마지막 항목 매달
SELECT t.created_on,
t.earned_value,
t.planned_value,
t.budgeted_cost
FROM history t
JOIN (SELECT MAX(tt.created_on) 'maxtimestamp'
FROM history tt
GROUP BY EXTRACT(MONTH FROM tt.created_on)) m ON m.maxtimestamp = t.created_on
에 대한
SELECT t.created_on,
t.earned_value,
t.planned_value,
t.budgeted_cost
FROM history t
JOIN (SELECT MAX(tt.created_on) 'maxtimestamp'
FROM history tt
GROUP BY EXTRACT(WEEK FROM tt.created_on)) m ON m.maxtimestamp = t.created_on
3 마지막 항목
4- 전자 마지막 입력 그룹 ACH 년
SELECT t.created_on,
t.earned_value,
t.planned_value,
t.budgeted_cost
FROM history t
JOIN (SELECT MAX(tt.created_on) 'maxtimestamp'
FROM history tt
GROUP BY EXTRACT(YEAR FROM tt.created_on)) m ON m.maxtimestamp = t.created_on
사용'추출물 (tt.created_on FROM WEEK), EXTRACT (tt.created_on FROM 월), EXTRACT (tt.created_on FROM 년)'쿼리의 결과. – Elad