USE chyt.hahn;

-- if you get MEMORY LIMIT EXCEED error, it means there are too much data in your query.
-- try to decrease processing data, for example delete some unnecessary joins.

-- if you ger RESPONSE ENTITY TOO LARGE error,
-- try to add limit to query
-- or remove some selected fields

CREATE TABLE "//tmp/cmp-{{cmp_id}}" ENGINE = YtTable() AS
SELECT
    CAST(diff.TestID as Int64) AS testid,
    pre_event.SSPID AS sspid,
    pre_event.PageID AS pageid,
    pre_event.ProductType AS producttype_pre,
    test_event.ProductType AS producttype_test
FROM
    "{{yt_prefix}}/{{cmp_id}}/failed_test_ids"
    AS diff
INNER JOIN
    (SELECT * FROM "{{yt_prefix}}/{{pre_id}}/primary_ammo/0/request")
    AS pre_request
    ON diff.RequestIDBinary = pre_request.RequestID
INNER JOIN
    (SELECT * FROM "{{yt_prefix}}/{{pre_id}}/primary_ammo/0/event")
    AS pre_event
    ON diff.RequestIDBinary = pre_event.HitRequestID
INNER JOIN
    (SELECT * FROM "{{yt_prefix}}/{{test_id}}/primary_ammo/0/request")
    AS test_request
    ON diff.RequestIDBinary = test_request.RequestID
INNER JOIN
    (SELECT * FROM "{{yt_prefix}}/{{test_id}}/primary_ammo/0/event")
    AS test_event
    ON diff.RequestIDBinary = test_event.HitRequestID
WHERE
    producttype_pre != producttype_test;

SELECT *
FROM "//tmp/cmp-{{cmp_id}}"
ORDER BY sspid, pageid;

SELECT sspid, pageid, COUNT(*)
FROM "//tmp/cmp-{{cmp_id}}"
GROUP BY sspid, pageid
ORDER BY sspid, pageid;

SELECT sspid, COUNT(*)
FROM "//tmp/cmp-{{cmp_id}}"
GROUP BY sspid;

SELECT pageid, COUNT(*)
FROM "//tmp/cmp-{{cmp_id}}"
GROUP BY pageid;
