【发布时间】:2014-10-20 14:05:25
【问题描述】:
我有一个结构如下的表格:
客户名称、日期A、日期B、日期C
DateA<=DateB<=DateC.
客户有时会被多次列出,每个 DateA、DateB 和 DateC 的日期都不同。
所以如果我的数据看起来像:
X, 10/01, 10/02, 10/03
X, 10/04, 10/05, 10/06
X, 10/05, 10/07, 10/08
Y, 10/01, 10/05, NULL
Y, 10/01, 10/06, NULL
Z, 10/02, NULL, NULL
Z, 10/03, 10/04, NULL
我想要:
X, 10/05, 10/07, 10/08
Y, 10/01, 10/06, NULL
Z, 10/03, 10/04, NULL
换句话说,我希望每个客户在流程中走得最远的一行,其中 dateA、dateB 和 dateC 是流程中的里程碑。
如果两行是同一客户且处于同一里程碑,我只想选择日期最远的那一行。
我使用的是 Teradata 14.10。
对 SQL 相当陌生,因此我们将不胜感激。
【问题讨论】:
-
您使用的是哪个 DBMS?后格雷斯?甲骨文? DB2?火鸟?
-
抱歉:我们使用的是 Teradata。
-
哪个 Teradata 版本?如果 dateC 为 NULL,应该返回哪些行?
-
我们使用的是 Teradata 14.10。我更新了问题以提供更多详细信息。提前致谢。
标签: sql duplicates teradata