SELECT EVENT_DT - ((EVENT_DT -DATE'1900-01-07') MOD 7) AS dates,
CLSFD_USER_ID AS user_id,
COUNT(DISTINCT CLSFD_USER_ID) AS number_of_user_ids,
COUNT(DISTINCT CLSFD_CAS_AD_ID) AS number_of_ads,
SUM(IMPRSN_CNT) AS number_of_impressions
FROM clsfd_access_views.CLSFD_CAS_AD_HST
WHERE CLSFD_SITE_ID = 3001
AND datum >= '2017-01-01'
GROUP BY 1,2
我想拥有2017年每个月的唯一身份用户总数。我尝试过:
GROUP BY EXTRACT(MONTH FROM datum), 2
但这会返回错误。每月检索用户ID,广告和展示总数的最有效代码是什么。
答案 0 :(得分:0)
用户聚合对我来说没有意义,因为它们是你想要计算的东西。尝试按月份和年份进行分组:
var myDiv = {<div>
<h1>Hello World</h1>
</div>}
请注意,我更改了对SELECT
EXTRACT(YEAR FROM EVENT_DT) || '-' || EXTRACT(MONTH FROM EVENT_DT) AS month,
COUNT(DISTINCT CLSFD_USER_ID) AS number_of_user_ids,
COUNT(DISTINCT CLSFD_CAS_AD_ID) AS number_of_ads,
SUM(IMPRSN_CNT) AS number_of_impressions
FROM clsfd_access_views.CLSFD_CAS_AD_HST
WHERE
CLSFD_SITE_ID = 3001 AND
datum >= '2017-01-01' AND datum < '2018-01-01'
GROUP BY
EXTRACT(YEAR FROM EVENT_DT) || '-' || EXTRACT(MONTH FROM EVENT_DT);
的限制,以排除任何超过2017年的年份。
答案 1 :(得分:0)
如果您希望将此值包含在当前查询中,则应使用分析函数。例如&#34;每个月中唯一身份用户的总数&#34;会是这样的:
select count(distinct user_id) over(partition by EXTRACT(MONTH FROM datum))
请注意,每个用户都会重复这些值。