तिथियों की सूची
generate_series फ़ंक्शन का उपयोग करें तिथियों की सूची प्राप्त करने के लिए संख्याओं की सूची प्राप्त करने के लिए जिन्हें आप किसी तिथि में जोड़ सकते हैं:
SELECT CURRENT_DATE + s.a AS dates
FROM generate_series(0,14,7) as s(a);
परिणाम:
dates
------------
2004-02-05
2004-02-12
2004-02-19
पिवट करना
आपके प्रश्न का उत्तरार्द्ध परिणाम सेट को पिवट करने से संबंधित है - पंक्ति डेटा को स्तंभ डेटा में परिवर्तित करना। PIVOT और UNPIVOT ANSI हैं, लेकिन मैं उन्हें PostgreSQL द्वारा समर्थित के रूप में नहीं देखता वर्तमान में . किसी क्वेरी को पिवट करने का सबसे लगातार समर्थित माध्यम समग्र कार्यों का उपयोग करना है:
SELECT t.account,
SUM(CASE WHEN t.date = '2010-01-01' THEN t.amount END) AS '2010-01-01',
SUM(CASE WHEN t.date = '2010-01-02' THEN t.amount END) AS '2010-01-02',
SUM(CASE WHEN t.date = '2010-01-03' THEN t.amount END) AS '2010-01-03',
SUM(t.amount) AS Balance
FROM (SELECT CURRENT_DATE + s.a AS dates
FROM generate_series(0,14,7) as s(a)) x
LEFT JOIN TRANSACTIONS y ON y.date = x.date
GROUP BY t.account
डायनामिक कॉलम
...अर्थ है डायनामिक SQL ।