28 lines
792 B
SQL
28 lines
792 B
SQL
/* Q2. Tag evolution
|
|
\set year 2010
|
|
\set month 11
|
|
*/
|
|
WITH detail AS (
|
|
SELECT t.t_name
|
|
, count(DISTINCT CASE WHEN extract(MONTH FROM m.m_creationdate) = 11 THEN m.m_messageid ELSE NULL END) AS countMonth1
|
|
, count(DISTINCT CASE WHEN extract(MONTH FROM m.m_creationdate) != 11 THEN m.m_messageid ELSE NULL END) AS countMonth2
|
|
FROM message m
|
|
, message_tag mt
|
|
, tag t
|
|
WHERE 1=1
|
|
-- join
|
|
AND m.m_messageid = mt.mt_messageid
|
|
AND mt.mt_tagid = t.t_tagid
|
|
-- filter
|
|
AND m.m_creationdate >= '2010-11-1'::date
|
|
AND m.m_creationdate < '2010-11-1'::date + interval '2' month
|
|
GROUP BY t.t_name
|
|
)
|
|
SELECT t_name as "tag.name"
|
|
, countMonth1
|
|
, countMonth2
|
|
, abs(countMonth1-countMonth2) AS diff
|
|
FROM detail d
|
|
ORDER BY diff desc, t_name
|
|
LIMIT 100
|
|
; |