아마 이것은 이전에 요청되었지만, 나는 그것을 알아낼 수 없습니다. 나는이 phone_clicks테이블 (SQL 바이올린 http://sqlfiddle.com/#!15/855e0/1 )
CREATE TABLE phone_clicks (
id integer NOT NULL,
date date NOT NULL,
industry_id integer NOT NULL,
clicks integer DEFAULT 0 NOT NULL
);
insert into phone_clicks(id, date, industry_id, clicks)
values
(1, '2015-03-16', 1, 15),
(2, '2015-03-16', 2, 7),
(3, '2015-03-16', 3, 0),
(4, '2015-03-17', 1, 12),
(5, '2015-03-17', 3, 4),
(6, '2015-03-17', 4, 22),
(7, '2015-03-18', 1, 19),
(8, '2015-03-18', 2, 35);
이 표에는 여러 industry_id 및 날짜에 대한 전화 클릭 이벤트 수가 있습니다.
기간이 여러 개인 사용 가능한 모든 industry_id에 대한 클릭을 조건으로 계산할 수 있습니까? 이 출력을 갖고 싶습니다 :
------------------------------------------------
industry_id | today | yesterday | last 3 days |
------------------------------------------------
1 | 19 | 12 | 46 |
------------------------------------------------
2 | 35 | 0 | 42 |
------------------------------------------------
3 | 0 | 4 | 4 |
------------------------------------------------
4 | 0 | 22 | 22 |
------------------------------------------------
날짜별로 파티션으로 계산을 시도했지만 아무데도 없습니다. 하나의 쿼리에서이 데이터를 선택할 수 있습니까? 오늘, 어제, 3 월, 2 월, 1 월 등의 날짜 범위로 이전 달을 지정할 수 있다는 추가 이점이 있습니다.
업데이트 : 현재 달, 이전 달 및 이전 달을 날짜 범위로 정의하기 위해 바이올린을 업데이트했습니다. SQL 피들 : http://sqlfiddle.com/#!15/855e0/46
PostgreSQL 9.3을 사용하고 있지만 곧 마이그레이션 할 예정이므로 9.4 솔루션을 환영합니다.
date열 유형입니다date하지timestamp. 그 가정은 때때로 나를 불 태웠다