What is an SQL statement that removes duplicates but retains additional column data?

I would like to know what should be an SQL statement (for ORACLE DBMS) that will return unique (by CUSTOMER_ID, VEHICLE_ID, DEALER_ID and EVENT_TYPE_ID) rows, but it will also return the last date (EVENT_INITIATED_DATE) for this row, I tried DISTINCT and GROUP BY, but could not figure out how to handle EVENT_INITIATED_DATE (this is a 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                 
+3
source share
3 answers
select CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID, 
    max(EVENT_INITIATED_DATE)
from MyTable 
group by CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID
+6
source

Distinc will not work.

Grouping - and then one of the functions of MAX / MIN, etc. for additional fields.

SELECT Customer_ID, VEHICLE_ID, MAX (EVENT_INITIATED_DATE)... ... GROUP BY Customer_ID, VEHICLE_ID

, ;)

+1
select CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID,
EVENT_INITIATED_DATE
from MyTable a 
group by CUSTOMER_ID, VEHICLE_ID, DEALER_ID, EVENT_TYPE_ID,
EVENT_INITIATED_DATE HAVING EVENT_INITIATED_DATE = 
  ( select MAX(EVENT_INITIATED_DATE) from MyTable WHERE CUSTOMER_ID =
     a.CUSTOMER_ID AND VEHICLE_ID = a.VEHICLE_ID AND DEALER_ID =
     a.DEALER_ID AND a.EVENT_TYPE_ID = EVENT_TYPE_ID );
0

Source: https://habr.com/ru/post/1744222/


All Articles