मेरा पहला झुकाव इस तालिका को तैयार करने का है:
+---------+-------+--------+
| Country | Month | Amount |
+---------+-------+--------+
| UK | Jan | 4 |
+---------+-------+--------+
| UK | Feb | 12 |
+---------+-------+--------+
आदि और इसे धुरी। तो आप शुरू करेंगे (उदाहरण के लिए):
SELECT
c.country,
EXTRACT(MONTH FROM s.eldate) AS month,
COUNT(*) AS amount
FROM country AS c
JOIN site AS s ON s.country_id = c.id
WHERE
s.eldate > NOW() - INTERVAL '1 year'
GROUP BY c.country, EXTRACT(MONTH FROM s.eldate);
फिर आप उसे एक crosstab
में प्लग कर सकते हैं tablefunc
. से कार्य करता है मॉड्यूल
धुरी हासिल करने के लिए, कुछ इस तरह करें:
SELECT *
FROM crosstab('<query from above goes here>')
AS ct(country varchar, january integer, february integer, ... december integer);