Có lẽ điều này đã được hỏi trước đây, nhưng tôi không thể tìm ra nó. Tôi có một phone_clicks
bảng (sql fiddle 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);
Bảng này chứa số lần nhấp vào điện thoại cho nhiều ngành và ngày.
Có thể tính các nhấp chuột này cho tất cả các ngành công nghiệp có sẵn với nhiều phạm vi ngày làm điều kiện không? Tôi muốn có đầu ra này:
------------------------------------------------
industry_id | today | yesterday | last 3 days |
------------------------------------------------
1 | 19 | 12 | 46 |
------------------------------------------------
2 | 35 | 0 | 42 |
------------------------------------------------
3 | 0 | 4 | 4 |
------------------------------------------------
4 | 0 | 22 | 22 |
------------------------------------------------
Tôi đã thử sử dụng đếm với phân vùng theo ngày, nhưng không có nơi nào. Có thể chọn dữ liệu này trong một truy vấn không? Lợi ích bổ sung sẽ có thể chỉ định các tháng trước dưới dạng phạm vi ngày: hôm nay, hôm qua, tháng 3, tháng 2, tháng 1, v.v.
CẬP NHẬT : Tôi đã cập nhật fiddle để xác định tháng hiện tại, tháng trước và tháng trước là phạm vi ngày. Câu đố SQL: http://sqlfiddle.com/#!15/855e0/46
Tôi đang sử dụng PostgreSQL 9.3, nhưng 9,4 giải pháp được hoan nghênh, vì chúng tôi sẽ sớm chuyển sang sử dụng nó.
date
là một cột loạidate
và khôngtimestamp
. Giả định đó đã đốt cháy tôi nhiều lúc