SQL-比较两列,找到真实值并在IF计算中使用该值
我试着比较两列page\u entry和exit\u page,如果两者都是真值1,那么它就是一个反弹SQL-比较两列,找到真实值并在IF计算中使用该值,sql,sql-server,if-statement,Sql,Sql Server,If Statement,我试着比较两列page\u entry和exit\u page,如果两者都是真值1,那么它就是一个反弹 Page_entry | exit_page | Bounce 1 1 true 0 1 false etc etc ...... 这就是我想到的,它只向我展示了真正的价值观 select hit_id,visit_num, CASE
Page_entry | exit_page | Bounce
1 1 true
0 1 false
etc etc ......
这就是我想到的,它只向我展示了真正的价值观
select hit_id,visit_num,
CASE
WHEN entry_page = exit_page
THEN 'True'
ELSE 'False'
END as Bounce
FROM [dbo].[Primary]
WHERE entry_page = exit_page
END
但是现在我需要写一个计算,比如
SUM(IF Bouce = TRUE THEN 1 ELSE 0 END)/page_visit
你在找这样的东西吗
select hit_id,visit_num,
SUM (CASE entry_page
WHEN exit_page THEN 1
ELSE 0
END)/page_visit as ratio
FROM [dbo].[Primary]
group by hit_id,visit_num,page_visit ;
选择hit_id、visit_num、,
金额(案例条目)\第页
当退出页面时,则返回1
当进入第1页时
其他0结束)/访问次数作为比率 从[dbo].[Primary] 按点击次数、访问次数、输入页面分组
这让我足够接近了,谢谢 什么是访问的
页面
?我在您的示例数据中看不到这一点。您的WHEN
和WHERE
子句是相同的!因此,是的,它将只显示TRUE
。替换:CASE WHEN entry\u page=exit\u page,然后'TRUE'否则'False'结束为反弹
,SUM(CASE WHEN entry\u page=exit\u page,然后1 ELSE 0 END)结束为反弹page\u entry\u page。其中entry\u page=exit\u page,您想知道为什么都是真的。Sum和no group by.page_访问是一个页面被点击多少次的国家/地区,抱歉,我没有将其包括在内。
CASE WHEN entry_page = 1 AND exit_page = 1 THEN 'True' ELSE 'False' END as 'BounceAnswer'
SUM(CASE WHEN entry_page = 1 AND exit_page = 1 THEN 1 ELSE 0 END) as 'BounceCount'