删除重复项但保留附加列数据的 SQL 语句是什么?
我想知道应该是什么 SQL 语句(对于 ORACLE DBMS),它会返回唯一的(通过 CUSTOMER_ID、VEHICLE_ID、DEALER_ID 和 EVENT_TYPE_ID)行,但它也会返回该行的最新日期 (EVENT_INITIATED_DATE)。我尝试过 DISTINCT 和 GROUP BY,但无法弄清楚如何处理 EVENT_INITIATED_DATE (即 DATE 数据类型)。
CUSTOMER_ID VEHICLE_ID DEALER_ID EVENT_TYPE_ID EVENT_INITIATED_DATE
---------------------- ---------------------- ---------- ---------------------- -------------------------
22197630 23093399 6040 20 11-JAN-07
22197630 23093399 6040 5 11-JAN-07
22197630 23093399 6040 4 11-JAN-07
22197630 23093399 6040 3 11-JAN-07
22197630 23093399 6040 4 19-JAN-06
I'd like to know what should be the SQL statement (for ORACLE DBMS) that would get back unique (by CUSTOMER_ID, VEHICLE_ID, DEALER_ID and EVENT_TYPE_ID) rows BUT it will return the latest date (EVENT_INITIATED_DATE) for that row too. I've tried DISTINCT and GROUP BY, but wasn't able to figure out how to handle EVENT_INITIATED_DATE (that is DATE data type).
CUSTOMER_ID VEHICLE_ID DEALER_ID EVENT_TYPE_ID EVENT_INITIATED_DATE
---------------------- ---------------------- ---------- ---------------------- -------------------------
22197630 23093399 6040 20 11-JAN-07
22197630 23093399 6040 5 11-JAN-07
22197630 23093399 6040 4 11-JAN-07
22197630 23093399 6040 3 11-JAN-07
22197630 23093399 6040 4 19-JAN-06
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
区别是行不通的。
分组依据 - 然后是附加字段的 MAX / MIN 等功能之一。
选择 Customer_ID、VEHICLE_ID、MAX(EVENT_INITIATED_DATE)...
...GROUP BY Customer_ID、VEHICLE_ID
希望有帮助;)
Distinc won't work.
Group by - and then one of the MAX / MIN etc. functions for the additional fields.
SELECT Customer_ID, VEHICLE_ID, MAX(EVENT_INITIATED_DATE)...
...GROUP BY Customer_ID, VEHICLE_ID
Hope that helps ;)