从SQL Server选择最早的联系时间

时间:2018-12-17 01:14:33

标签: sql-server

我想比较emailemail_join列中的相同值,这是最早的时间,它通过比较atlas_interestcreated_at列。

enter image description here

例如,matt@example.com被联系两次,联系时间在atlas_interestcreated_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

1 个答案:

答案 0 :(得分:1)

如果该值仅出现在emailemail_join中,则可以在其上使用coalesce()返回第一个非空值

之后,在时间列上只需GROUP BYMIN ()

SELECT email        = COALESCE(email, email_join),
       earlist_time = MIN(COALESCE(atlas_interest, created_at))
FROM   yourtable
GROUP BY COALESCE(email, email_join)