Как подсчитать среднее количество чатов в день на таблице LEFT JOIN в Snowflake SQL? - PullRequest
0 голосов
/ 02 апреля 2020

В диктовке Снежинка SQL как мне усреднить количество видеочатов в день, используя поле из таблицы, которую я оставил, присоединенной ко всему запросу?

Я думаю, что мне нужно сделать функцию SUM, чтобы подсчитать количество видеочатов, а затем агрегировать по # видеочатам за каждую дату, а затем разделить на 30 дней (скользящий диапазон дат, который я указывал на протяжении всего весь запрос).

Любая помощь будет оценена по мере приближения сроков. Спасибо.

    SELECT DISTINCT 
        t1."pid",
        IFNULL(t2."VideoChats",0),
        t3."SFUser",
        t3."TotalProviders",
        t4."dimaccount.practice_specialty",
        t5."Account: CMRR",
        t6."CreatedDate",
        t7."stg_sf_case.Date_Time_Resolved__c",
        t8."stg_sf_case.Closed_Date",
        t9."pid"
    FROM (SELECT "pid"
            FROM "EDW_PROD"."PUBLIC"."STG_MYSQL_PROVIDERMODULES" AS a
            WHERE a."active" 
              AND a."status" = 'PURCHASED'
              AND a."module_id" = '14'
            GROUP BY a."pid"
            ) t1
    LEFT JOIN (SELECT "started_at",
                    "pid",
                    COUNT(*) AS "VideoChats"
                FROM "EDW_PROD"."PUBLIC"."STG_MYSQL_VIDEOCHATROOM" AS b
                LEFT JOIN "EDW_PROD"."PUBLIC"."DIMACCOUNT" AS dimaccount 
                    ON b."pid" = dimaccount."PID"
                WHERE b."started_at"  >= DATE_TRUNC('month', CURRENT_DATE())
                  AND b."started_at" < DATEADD('month', 1, DATE_TRUNC('month', CURRENT_DATE()))
                  AND dimaccount."CurrentRow" = 'Y'
                GROUP BY b."pid", b."started_at"
            ) t2 ON t1."pid" = t2."pid"

1 Ответ

0 голосов
/ 02 апреля 2020

Для скользящего среднего вы, вероятно, хотите использовать оконную функцию. Что-то в этом духе достаточно того, что ваш запрос делает с датами или какие результаты вы ищете, чтобы быть уверенным.

...