我想比较email
和email_join
列中的相同值,这是最早的时间,它通过比较atlas_interest
和created_at
列。
例如,matt@example.com
被联系两次,联系时间在atlas_interest
和created_at
列中。 atlast_interest
中的联系时间较早。因此它将被选中。
katia@example.com
在“电子邮件”和“ atlas_interest”上没有任何价值。因此,created_at
将被自动选择为最早的联系时间。
预期输出为:
email earliest_time
-------------------------------------------
matt@example.com 2018-08-12 19:16:17.000
eli@example.com 2018-08-14 14:06:30.000
katia@example.com 2018-08-14 14:11:30.000
答案 0 :(得分:1)
如果该值仅出现在email
或email_join
中,则可以在其上使用coalesce()
返回第一个非空值
之后,在时间列上只需GROUP BY
和MIN ()
SELECT email = COALESCE(email, email_join),
earlist_time = MIN(COALESCE(atlas_interest, created_at))
FROM yourtable
GROUP BY COALESCE(email, email_join)