Saturday, February 11, 2012

SQL quere: page views by age of articles


SELECT
    Substring(FULL_URI, 0, POSITION('/' in FULL_URI)) DOMAIN,
    AGE+1 AGE,
    SUM(ALL_IMPRESSIONS) ALL_IMPRESSIONS,
    SUM(IMPRESSIONS) IMPRESSIONS,
    SUM(CLICKS) CLICKS
FROM
(
SELECT
    FULL_URI,
    cal.DAY,
    data1.MIN_PUBLISHED PUBLISHED,
    DAYS_BETWEEN(pub.MIN_PUBLISHED,cal.DAY) AGE,
    SUM(ALL_IMPRESSIONS) ALL_IMPRESSIONS,
    SUM(IMPRESSIONS) IMPRESSIONS,
    SUM(CLICKS) CLICKS
FROM
    DATASET1 data1
INNER JOIN
    DATASET2 data2
ON
    REGEXP_REPLACE(pub.URL, 'https?://', '' ) = data2.FULL_URI
INNER JOIN
    CALENDER_TABLE cal
ON
    data2.DAY_KEY = cal.DAY_KEY
WHERE
    URL LIKE '%p1.html'
AND
    cal.DAY BETWEEN '2011-01-01' AND '2012-01-01'
GROUP BY
    cal.DAY,
    FULl_URI,
    PUBLISHED
ORDER BY
    cal.DAY,
    PUBLISHED
) x
WHERE
    DOMAIN = 'channel'
AND
    AGE IS NOT NULL
GROUP BY
    DOMAIN,
    AGE
ORDER BY
    AGE
;

No comments:

Post a Comment