如何从计数值中获取平均值?
How to get average from counting values?
我正在使用 SQLite。
我需要确定每天的平均展示次数,其中展示次数 = person_id 的次数。
列:
- person_id - 人的唯一标识符
- 日期 - 他们看到广告的日期
- ad_id - 广告内容:ad_1_product1、ad_2_product2 或 ad_3_product3
- 已点击 (TRUE/FALSE) - 点击了广告
- signed_up - (TRUE/FALSE) 创建了一个帐户
- 已订阅 (TRUE/FALSE) - 开始付费订阅
我设置点击,signed_up和订阅为BOOLEAN,其余为文本。
我的代码:
SELECT AVG(展示次数)AS avg_impressions
从 (
SELECT COUNT(person_id) 次展示
来自视频广告
按日期分组
) 日期;
我得到 1 行 1 列 avg_impression = 591
我无法按日期细分平均值。日期为 2021-04-27 格式,总日期数为 8.
结果
意料之中,忽略列名,只是给你看
非常感谢任何帮助。
每天的平均展示次数是总展示次数除以人数。不需要子查询:
SELECT COUNT(*) * 1.0 / COUNT(DISTINCT person_id) AS avg_impressions
FROM videoadcampaign;
如果您想要每天的行数百分比,则可以通过将每天的计数除以总行数来实现。
具有SUM()
window功能:
SELECT date, 1.0 * COUNT(*) / SUM(COUNT(*)) OVER () AS avg_impressions
FROM videoadcampaign
GROUP BY date
或者,使用子查询:
SELECT date, 1.0 * COUNT(*) / (SELECT COUNT(*) FROM videoadcampaign) AS avg_impressions
FROM videoadcampaign
GROUP BY date
我假设列 person_id
不可为空,因此您可以使用 COUNT(*)
.
而不是 COUNT(person_id)
我正在使用 SQLite。
我需要确定每天的平均展示次数,其中展示次数 = person_id 的次数。
列:
- person_id - 人的唯一标识符
- 日期 - 他们看到广告的日期
- ad_id - 广告内容:ad_1_product1、ad_2_product2 或 ad_3_product3
- 已点击 (TRUE/FALSE) - 点击了广告
- signed_up - (TRUE/FALSE) 创建了一个帐户
- 已订阅 (TRUE/FALSE) - 开始付费订阅
我设置点击,signed_up和订阅为BOOLEAN,其余为文本。
我的代码:
SELECT AVG(展示次数)AS avg_impressions 从 ( SELECT COUNT(person_id) 次展示 来自视频广告 按日期分组 ) 日期;
我得到 1 行 1 列 avg_impression = 591
我无法按日期细分平均值。日期为 2021-04-27 格式,总日期数为 8.
结果
意料之中,忽略列名,只是给你看
非常感谢任何帮助。
每天的平均展示次数是总展示次数除以人数。不需要子查询:
SELECT COUNT(*) * 1.0 / COUNT(DISTINCT person_id) AS avg_impressions
FROM videoadcampaign;
如果您想要每天的行数百分比,则可以通过将每天的计数除以总行数来实现。
具有SUM()
window功能:
SELECT date, 1.0 * COUNT(*) / SUM(COUNT(*)) OVER () AS avg_impressions
FROM videoadcampaign
GROUP BY date
或者,使用子查询:
SELECT date, 1.0 * COUNT(*) / (SELECT COUNT(*) FROM videoadcampaign) AS avg_impressions
FROM videoadcampaign
GROUP BY date
我假设列 person_id
不可为空,因此您可以使用 COUNT(*)
.
COUNT(person_id)