如何从计数值中获取平均值?

How to get average from counting values?

我正在使用 SQLite。

我需要确定每天的平均展示次数,其中展示次数 = person_id 的次数。

列:

我设置点击,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)