【发布时间】:2018-11-30 10:40:42
【问题描述】:
我有两张桌子,CALL_DATA 和 MASTER_DATA。
主数据有一个客户的日常数据,CALL_DATA 有一些客户的电话以及其他一些数据。
我想为每个客户和他在MASTER_DATA 中的每一行获取最近日期(到现在为止的最大日期)从CALL_DATA 开始的行。
我想出了这个:
SELECT MAX(CALL_DATA.CALL_DATE) OVER (PARTITION BY MASTER_DATA.CUSTOMER_ID
ORDER BY MASTER_DATA.DAILY_START_DATE)
AS max_date_agg
, MASTER_DATA.*
, CALL_DATA.*
FROM MASTER_DATA, CALL_DATA
WHERE CALL_DATA.CALL_DAT <= MASTER_DATA.DAILY_START_DATE
AND CALL_DATA.CUSTOMER_ID = MASTER_DATA.CUSTOMER_ID;
但这让我在每天的开始日期都有不止一个现场直播。
事实上,它返回的行数与CALL_DATA 表中的行数一样多,直到MASTER_DATA 中的DAILY_START_DATE。
例子:
MAX_DATE_AGG CUSTOMER_ID DAILY_START_DATE
24/10/17 00:00:00,000000000 100664970 24/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 25/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 26/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 27/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 28/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 29/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 30/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 31/10/17 00:00:00
24/10/17 00:00:00,000000000 100664970 01/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 02/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 03/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 04/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 05/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 06/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 07/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 08/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 09/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 10/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 11/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 12/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 13/11/17 00:00:00
24/10/17 00:00:00,000000000 100664970 14/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 15/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 15/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 16/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 16/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 17/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 17/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 18/11/17 00:00:00
15/11/17 00:00:00,000000000 100664970 18/11/17 00:00:00
【问题讨论】: