gpt4 book ai didi

SQL 将数据按行划分

转载 作者:行者123 更新时间:2023-12-01 16:11:18 27 4
gpt4 key购买 nike

我有下表名为

表格:事件

userid    appid    type
1 a imp
2 a imp
2 a click
3 a imp
4 a imp
4 a click
5 b imp
5 b click

我正在尝试计算每个appid的点击率。在本例中,我们将点击率定义为(点击次数)/(展示次数)。我编写了以下 SQL:

SELECT appid, type, count(*) from activity group by appid, type

并得到以下结果:

输出:

appid    type       count(*)
a click 2
a imp 4
b click 1
b imp 1

下一步是按行除法。最终,我希望实现以下目标:

目标:

appid    click-through
a .5 # 2/4 = .5
b 1 # 1/1 = 1

这是如何实现的?理想情况下,我希望在一个查询中完成此操作,这可能吗?

最佳答案

您可以使用条件聚合来执行此操作:

   select appid
, SUM(CASE WHEN type = 'click' THEN 1 END)*1.0
/ SUM(CASE WHEN type = 'imp' THEN 1 END) AS click_through
from activity
group by appid

演示:SQL Fiddle

如果使用 MySQL,您可以进一步简化:

   select appid
, SUM(type = 'click')*1.0
/ SUM(type = 'imp') AS click_through
from activity
group by appid

关于SQL 将数据按行划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28703538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com