날짜 필터링 누적 합계를 계산 나는 다음과 같은 값을 테이블에 사용자가 : PostgreSQL을
id | created_at
-------+---------------------
20127 | 2015-01-31 04:23:46
21468 | 2015-02-04 07:50:34
21571 | 2015-02-04 08:23:50
20730 | 2015-03-12 10:20:16
19955 | 2015-03-30 07:44:35
20148 | 2015-04-17 13:03:26
21552 | 2015-05-07 19:00:00
20145 | 2015-06-02 03:12:46
21467 | 2015-06-03 13:21:51
21074 | 2015-07-03 19:00:00
내가하고 싶은 :
이
- 은 시간이 지남에 따라 사용자 수에 대한 누적 합계를 찾을 수 있습니다 (귀국일 수 데이터베이스에있는 날짜뿐만 아니라 날짜 범위의 매일 매일의 사용자 수를 표시합니다.
- 날짜별로 해당 합계를 필터링 할 수 있어야합니다. 따라서 일부 행 뒤의 날짜를 입력하면 해당 행을 포함해야합니다 누적 합계 (범위 s 이전의 모든 것) 지정된 월이 첫 번째 합계에 포함되어야한다, 그것은 시대 형식으로 매일 그룹화
- 반환 결과는
내가 이것을 달성하기 위해 노력하고있어 지정 범위)의 시작 부분에 0부터 계산을 시작하지 말아야
SELECT extract(epoch from created_at)::bigint,
sum(count(id)::integer) OVER (ORDER BY created_at)
FROM data_users
WHERE created_at IS NOT NULL
GROUP BY created_at
누적 합계의 레코드를 제외하지 않고 여기 날짜별로 필터링을 추가 할 수 없으므로 예상대로 작동하지 않습니다. 또한 누락 된 날짜 (사용자가 존재하지 않는 날)도 고려하지 않습니다.
도움을 주시면 감사하겠습니다.
하위 쿼리를 사용하고 필터링을 외부 쿼리에 넣기 만하면됩니다. –
@ GordonLinoff 당신이 자세히 설명해 주시겠습니까? – shime