संभवतः यह पहले भी पूछा जा चुका है, लेकिन मैं इसका पता नहीं लगा सकता। मेरे पास एक phone_clicks
मेज है (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);
यह तालिका कई उद्योग_पदों और तिथियों के लिए फ़ोन क्लिक इवेंट काउंट रखती है।
क्या शर्तों के रूप में कई तारीखों के साथ सभी उपलब्ध industry_ids के लिए इन क्लिक्स को गिनना संभव है? मैं यह उत्पादन करना चाहते हैं:
------------------------------------------------
industry_id | today | yesterday | last 3 days |
------------------------------------------------
1 | 19 | 12 | 46 |
------------------------------------------------
2 | 35 | 0 | 42 |
------------------------------------------------
3 | 0 | 4 | 4 |
------------------------------------------------
4 | 0 | 22 | 22 |
------------------------------------------------
मैंने तारीख तक विभाजन के साथ गिनती का उपयोग करने की कोशिश की है, लेकिन कहीं नहीं मिला। क्या एक क्वेरी में इस डेटा का चयन करना संभव है? अतिरिक्त लाभ तारीख सीमा के रूप में पिछले महीनों को निर्दिष्ट करने में सक्षम होंगे: आज, कल, मार्च, फरवरी, जनवरी, आदि
अद्यतन : मैंने तिथि सीमा के रूप में वर्तमान माह, पिछले महीनों और पूर्व-पिछले महीने को परिभाषित करने के लिए फिडेल को अपडेट किया है। एसक्यूएल फिडल: http://sqlfiddle.com/# -15 / 855e0/ 46
मैं PostgreSQL 9.3 का उपयोग कर रहा हूं, लेकिन 9.4 समाधान स्वागत योग्य हैं, क्योंकि हम जल्द ही इसके लिए माइग्रेट करेंगे।
date
है कि टाइप का कॉलम हैdate
न किtimestamp
। उस धारणा ने मुझे कई बार जला दिया है