mysql - 在 SQL 中,如何获取两个不同的字符串值来做一个聚合函数?
问题描述
编写一个查询,获取2019年每个应用的点击率。事件表的架构是app_id(整数),event_id(字符串:“impression”,“click”和timestamp(日期时间)。我的查询如下,但不确定如何按展示或点击过滤以计算点击率。
SELECT app_id, COUNT(event_id = ‘click’ ) / COUNT (event_id = ‘impression’) as click_through_rate
FROM events
WHERE EXTRACT(YEAR from timestamp) = 2019
GROUP BY app_id
ORDER BY click_through_rate DESC
解决方案
我想你想要sum()
:
SELECT app_id,
SUM(event_id = ‘click’ ) / SUM(event_id = ‘impression’) as click_through_rate
FROM events
WHERE EXTRACT(YEAR from timestamp) = 2019
GROUP BY app_id
ORDER BY click_through_rate DESC;
COUNT()
计算表达式的非NULL
值的数量。您想要表达式所在的总和true
- 因此SUM()
而不是COUNT()
.
推荐阅读
- heroku-postgres - 将 postgresql 数据库迁移到 heroku
- sql-server - 为什么 SqlConnection.Open() 在 Unity WebGL 应用程序中触发“无法扩大内存数组”错误
- python - 将图像列表转换为一个视频时在FFmpeg中设置图像持续时间?
- x86-16 - Emu8086 - 尝试向下移动光标时光标位置不正确
- c# - 尝试将斐波那契序列生成到列表框项中
- c++ - 如何读取地图文件(0 和 1)并将其存储到 C++ 中的数组中?
- python - 在 Windows 10 中生成错误的命令:
- amazon-web-services - 了解从哪里开始在 AWS 上进行批处理
- python - 如何为电报(telebot lib)设计python代码?
- postgrest - 如何在获取记录时解决 Postgrest 问题