以客户第一次在任何系统注册的时间为例
Take the time when customer first time register in any system
我在数据库中有一些表:
C_Master_USER - 包含用户 (ID_USER) 和他们的 MasterID (ID_Master) 之间的关系 - 来自不同系统的用户但他们使用 f.e。相同的电子邮件将具有相同的 MasterID
V_DL_C_USER - 包含每个用户的 ID_Source 和 ID_SYS_TYPE
C_Source - 包含源系统的实体名称
C_SYS_TYPE - 包含系统类型的实体名称
我的简单任务是获取每个 MasterID、它们的 RegistratonDate 和任何系统中的首次注册来源
SELECT top 50
MasterID, RegistrationDate, SourceName, SystemName
FROM (
SELECT
a.ID_MASTER as MasterID,
a.DATE_N as RegistrationDate,
c.Name2 as SourceName,
d.Name_2 as SystemName,
ROW_NUMBER() OVER(ORDER BY a.DATE_N ASC) as RN
FROM C_MASTER_USE a
join V_DL_C_USER b on a.ID_USER = b.ID
join c_source c on b.ID_Source = c.ID
join C_SYS_TYPE d on b.ID_SYS_TYPE = d.ID
) t
where RN = 1
但是查询结果只有1个,是所有系统中最新的用户。
MasterID RegistrationDate SourceName SystemName
8825938 2020-11-10 08:17:30 Mobile App Club
如果您想要每个 MasterId
一行,请使用 PARTITION BY
:
SELECT top 50
MasterID, RegistrationDate, SourceName, SystemName
FROM (
SELECT
a.ID_MASTER as MasterID,
a.DATE_N as RegistrationDate,
c.Name2 as SourceName,
d.Name_2 as SystemName,
ROW_NUMBER() OVER(PARTITION BY a.ID_MASTER ORDER BY a.DATE_N ASC) as RN
FROM C_MASTER_USE a
join V_DL_C_USER b on a.ID_USER = b.ID
join c_source c on b.ID_Source = c.ID
join C_SYS_TYPE d on b.ID_SYS_TYPE = d.ID
) t
where RN = 1
我在数据库中有一些表:
C_Master_USER - 包含用户 (ID_USER) 和他们的 MasterID (ID_Master) 之间的关系 - 来自不同系统的用户但他们使用 f.e。相同的电子邮件将具有相同的 MasterID
V_DL_C_USER - 包含每个用户的 ID_Source 和 ID_SYS_TYPE
C_Source - 包含源系统的实体名称
C_SYS_TYPE - 包含系统类型的实体名称
我的简单任务是获取每个 MasterID、它们的 RegistratonDate 和任何系统中的首次注册来源
SELECT top 50
MasterID, RegistrationDate, SourceName, SystemName
FROM (
SELECT
a.ID_MASTER as MasterID,
a.DATE_N as RegistrationDate,
c.Name2 as SourceName,
d.Name_2 as SystemName,
ROW_NUMBER() OVER(ORDER BY a.DATE_N ASC) as RN
FROM C_MASTER_USE a
join V_DL_C_USER b on a.ID_USER = b.ID
join c_source c on b.ID_Source = c.ID
join C_SYS_TYPE d on b.ID_SYS_TYPE = d.ID
) t
where RN = 1
但是查询结果只有1个,是所有系统中最新的用户。
MasterID RegistrationDate SourceName SystemName
8825938 2020-11-10 08:17:30 Mobile App Club
如果您想要每个 MasterId
一行,请使用 PARTITION BY
:
SELECT top 50
MasterID, RegistrationDate, SourceName, SystemName
FROM (
SELECT
a.ID_MASTER as MasterID,
a.DATE_N as RegistrationDate,
c.Name2 as SourceName,
d.Name_2 as SystemName,
ROW_NUMBER() OVER(PARTITION BY a.ID_MASTER ORDER BY a.DATE_N ASC) as RN
FROM C_MASTER_USE a
join V_DL_C_USER b on a.ID_USER = b.ID
join c_source c on b.ID_Source = c.ID
join C_SYS_TYPE d on b.ID_SYS_TYPE = d.ID
) t
where RN = 1