SQL-比较两列,找到真实值并在IF计算中使用该值

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\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 

        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'