首页 > 解决方案 > 如何从计数值中获得平均值?

问题描述

我正在使用 SQLite。

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

列:

我将 clicked、signed_up 和 subscribed 设置为 BOOLEAN,其余的是文本。

我的代码:

SELECT AVG(impressions) AS avg_impressions FROM (SELECT COUNT(person_id) as Impressions FROM videoadcampaign GROUP BY date) 日期;

我得到 1 行 1 列 avg_impression = 591

我无法按日期细分平均值。日期为 2021-04-27 格式,日期总数为 8。

结果

结果

预期的,忽略列名,这只是为了向您展示

预期的,忽略列名,这只是为了向您展示

非常感谢任何帮助。

标签: sqlsqlitecountpercentage

解决方案


如果您想要每天的行数百分比,则可以通过将每天的计数除以总行数来实现。

SUM()窗口功能:

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(person_id)您可以使用COUNT(*).


推荐阅读