【发布时间】:2019-08-30 11:28:30
【问题描述】:
我想写一个案例语句,从注册时间中减去应用登录和门户登录之间的最短日期时间。
我假设这将涉及一个案例陈述,但不知道如何写出来
我当前的代码是:
select case when first_app_login < first_portal_login
then signup_complete - first_app_login
when first_app_login > first_portal_login
then signup_complete - first_portal_login
else signup_complete - first_app_login
end as signup_to_login
from database
但是这会返回以下错误消息:
错误:在 PortalSuspended 状态时协议序列“P”无效。 无标题图表
这是我的数据示例:
signup_complete first_app_login first_portal_login
2019-07-08 08:38:56.523 2019-09-07 19:01:01.915
2019-05-10 12:24:11.704 2019-05-10 12:54:11.704
想要的结果是第一行的 signup_complete - first_portal_login,第二行的 signup_complete - first_app_login。
所以我们只用非空值或 first_app 和 first_portal 登录之间的最低日期时间值减去 signup_complete
【问题讨论】:
-
你的第一次是多余的。您不必在 Redshift 中使用
DATEDIFF来计算日期时间差吗? -
@emm 这个公式是否正确:
signup_complete - first_app_login或signup_complete - first_portal_login?它总是会产生负值。
标签: sql case amazon-redshift