我生成了一个查询,以按日期以及每个平均持续时间提取唯一登录信息。我现在想做的是添加一个代表登录名的列。
我获取唯一登录名的方式是减去最大和最小创建日期(这是计算平均持续时间所必需的)。
我现在有一个简单的查询来计算所有登录(不只是唯一的登录)。
根据我的查询-如何添加列,这样我将拥有登录名,唯一登录名,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')
因此,我基本上只希望将登录名和唯一登录名一起表示。
谢谢!
答案 0 :(得分:0)
您可以使用以下语法从多个表中进行选择
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;