【发布时间】:2023-02-22 17:30:33
【问题描述】:
我有一个问题要问你希望你能帮助我。
这是我的桌子:
Username Time Action
-------- ------ ------
Franck 10.11 LogIn
Mark 10.14 LogIn
Luke 10.17 LogIn
Mark 10.18 LogOut
Mary 10.21 LogIn
我希望有一个计数器列在每次发现登录操作时添加 +1,并在每次出现注销操作时删除 -1。
像这样:
Username Time Action Counter
-------- ------ ------ -------
Franck 10.11 LogIn 1
Mark 10.14 LogIn 2
Luke 10.17 LogIn 3
Mark 10.18 LogOut 2
Mary 10.21 LogIn 3
我怎样才能做到这一点?
我试图添加一个 countif 但这不是正确的方法
【问题讨论】:
-
你可以使用
sum()函数并有一个案例,这样当你logIn时它递增1,当你logOut递减1时,然后使用over命令这样你就可以在你拥有的所有行上执行它SUM(CASE WHEN Action = 'LogIn' THEN 1 WHEN Action = 'LogOut' THEN -1 ELSE 0 END) OVER (ORDER BY Time) AS Counter
标签: oracle