Почему в моем тесте счетчик различий отличается быстрее, чем счетчик групп, в чём разница? - PullRequest
0 голосов
/ 25 февраля 2020

считать отличным

SELECT country_en           AS country,
day,
       count(1)             AS expo_cnt,
       count(DISTINCT imei) AS expo_users
FROM (
         SELECT cm, app_version_code, event_id, imei, day
         FROM exostsdk
         WHERE day >= '2019-12-01'
           AND day <= '2020-02-23'
           AND event_id = '00***|0*0'
           AND cm IN ('ID', 'IN')
     ) a
         JOIN
     (
         SELECT country_en, version, countrycode
         FROM country
         GROUP BY country_en, version, countrycode
     ) c ON a.cm = c.countrycode AND a.app_version_code = c.version
GROUP BY country_en, day;

считать группу на

SELECT country_en           AS country,
       day,
       sum(part_pv) AS expo_cnt,
       count(1)     AS expo_users
FROM (
         SELECT cm, app_version_code, event_id, imei, day, count(1) AS part_pv
         FROM (
                  SELECT cm, app_version_code, event_id, imei, day
                  FROM exostsdk
                  WHERE day >= '2019-12-01'
                    AND day <= '2020-02-23'
                    AND event_id = '00***|0*0'
                    AND cm IN ('ID', 'IN')
              ) a
         GROUP BY cm, app_version_code, event_id, imei, day
     ) b
         JOIN
     (
         SELECT country_en, version, countrycode
         FROM country
         GROUP BY country_en, version, countrycode
     ) c ON b.cm = c.countrycode AND b.app_version_code = c.version
GROUP BY country_en, day;

в случае, отличное занимает 14 минут, чтобы завершить sh работу, в то время как группировка занимает 19 минут. это показывает отличные результаты, чем любая сцена во многих блогах, которые я видел. Я буду признателен, если вы можете сделать мне одолжение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...