Probabilmente questo è stato chiesto prima, ma non riesco a capirlo. Ho un phone_clicks
tavolo (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);
Questa tabella contiene i conteggi degli eventi di clic del telefono per più Industry_ids e date.
È possibile contare questi clic per tutti i market_ids disponibili con più intervalli di date come condizioni? Vorrei avere questo output:
------------------------------------------------
industry_id | today | yesterday | last 3 days |
------------------------------------------------
1 | 19 | 12 | 46 |
------------------------------------------------
2 | 35 | 0 | 42 |
------------------------------------------------
3 | 0 | 4 | 4 |
------------------------------------------------
4 | 0 | 22 | 22 |
------------------------------------------------
Ho provato a usare il conteggio con partizione per data, ma non sono arrivato da nessuna parte. È possibile selezionare questi dati in una query? Un ulteriore vantaggio sarebbe quello di poter specificare i mesi precedenti come intervalli di date: oggi, ieri, marzo, febbraio, gennaio, ecc
AGGIORNAMENTO : ho aggiornato il violino per definire il mese corrente, i mesi precedenti e il mese precedente come intervalli di date. SQL Fiddle: http://sqlfiddle.com/#!15/855e0/46
Sto usando PostgreSQL 9.3, ma le soluzioni 9.4 sono benvenute, perché presto migreremo su di esso.
date
sia una colonna di tipodate
e nontimestamp
. Questa ipotesi mi ha bruciato a volte