Объединить два запроса, чтобы сформировать одну таблицу - в postgres - PullRequest
0 голосов
/ 24 декабря 2018

Я сгенерировал запрос для получения уникальных логинов по дате и средней продолжительности каждого из них.Что я сейчас пытаюсь сделать, это добавить столбец, представляющий логины.

Я извлекаю уникальные логины путем вычитания максимальной и минимальной даты создания (так как это необходимо для расчета средней продолжительности).

Теперь у меня есть простой запрос для расчета всех имен входа (не просто уникальных имен входа).

На основе моего запроса - как добавить столбец, чтобы у меня были имена входа, уникальные имена входа,Average_duration, а также login_date?

МОЙ ЗАПРОС:

SELECT 
COUNT(unique_session_ids) as unique_logins
,AVG(
      CASE WHEN duration > '0' 
      THEN duration 
      END) as average_duration
,login_date                                                    
FROM(
    SELECT a.session_id as unique_session_ids
    ,MAX(a.created)-min(a.created) as duration
    ,MIN(to_char(b.created,'mm-dd')) as login_date   
        FROM base_identity a
            INNER JOIN base_identity b
            ON a.session_id = b.session_id
        WHERE a.source_system_id = 11
        AND a.created >= '2018-12-01'
        GROUP BY a.session_id) x
GROUP BY login_date;

ЧТО ХОЧУ ДОБАВИТЬ В ЭТО:

SELECT COUNT(session_id) as logins                                                             
FROM base_identity
GROUP BY to_char(created,'mm-dd')

Итак, я просто хочу, чтобы логины и уникальные логины были представлены вместе.

Спасибо!

1 Ответ

0 голосов
/ 25 декабря 2018

Вы можете выбрать одну из нескольких таблиц со следующим синтаксисом

SELECT Table1.column_name, Table2.column_name
FROM Table1, Table2

В вашем случае это будет выглядеть как

SELECT 
    COUNT(x.unique_session_ids) as unique_logins
    ,AVG(CASE WHEN x.duration > '0' THEN x.duration END) as average_duration
    ,x.login_date
    ,COUNT(y.session_id)                                  
FROM([...]) x
    , base_identity y
GROUP BY x.login_date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...