sql - 如何从计数值中获得平均值?
问题描述
我正在使用 SQLite。
我需要确定每天的平均展示次数,其中展示次数 = person_id 计数。
列:
- person_id - 人的唯一标识符
- 日期 - 向他们展示广告的日期
- ad_id - 广告内容:ad_1_product1、ad_2_product2 或 ad_3_product3
- clicked (TRUE/FALSE) - 点击了广告
- signed_up - (TRUE/FALSE) 创建了一个帐户
- subscribed (TRUE/FALSE) - 开始付费订阅
我将 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。
结果
预期的,忽略列名,这只是为了向您展示
非常感谢任何帮助。
解决方案
如果您想要每天的行数百分比,则可以通过将每天的计数除以总行数来实现。
带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(*)
.
推荐阅读
- c# - C# Graph API - 设置 IsRead - 拒绝访问
- java - Spring Data JPA CRUD 存储库接口 JPQL @Query 生成自定义查询失败
- angular - NgFor 索引每 3 个项目更改一次。数学问题?
- javascript - Axel Rauschmayer 提到的 JavaScript 平台核心和 JS 标准库的内容是什么?
- c# - sharpsvn 提交问题“无法连接到 URL 'file///C:/Testing/repo' 的存储库”
- azure-ad-b2c - 实施基本策略认证
- typescript - 为什么 Typescript 说我的类型“可分配给类型‘T’的约束,但‘T’可以用不同的约束子类型实例化”?
- kotlin - 使用地图重构 kotlin 中的“何时”逻辑
- google-apps-script - 很抱歉,从存储读取时发生服务器错误。错误代码 NOT_FOUND
- android - 日期选择器不会随我的应用程序的其余部分更改其语言