我有一个名为“test”的表,其中包含以下列:
如果click=1和impression=1,那么我试图基于相同的lead\u id进行标记,因为每个事件(click或impression)由于发生日期不同而被捕获在单独的行中,因此可以跨多行复制,然后将其标记为1。
我有:
select click, imp, lead_id,
case
when count(distinct lead_id) >1 and (click=1 and imp = 1)
then 1
else 0
end as flag
from test
group by click, imp, lead_id;
所需输出:
所以这个标志只标记lead\ id 001,因为它有一个click和imp,在不同的日期。
2条答案
按热度按时间dba5bblo1#
使用如下分析函数:
lf5gs5x22#
获得最大值
click
以及imp
在每个分区中lead_id
. 如果它们等于1,就把它们标起来。这应该比对每个分区求和稍微有效一些。