我有一个名为SQL鸿沟数据
表如下表:活动
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
这是如何实现的呢?理想情况下,我希望这可以在一个查询中完成,那有可能吗?
对于这个例子,它工作正常,但现在想象你有没有印象的点击,你想删除它们,因为这很可能是错误。这个查询会忽略它。 – zipp 2017-03-31 17:59:42
@zipp当然可以调整条件来处理额外的复杂性,例如,可以将整个事件包装在一个“CASE”表达式中,该表达式用于检查以确保展示次数高于点击次数。 – 2017-03-31 20:13:45
我打开了一个单独的问题,以防万一您面临挑战: http:// stackoverflow。COM /问题/ 43148974/MySQL的,有条件自加盟 – zipp 2017-03-31 20:14:53