sql >> Databáze >  >> RDS >> Mysql

Použijte korelovaný poddotaz pro více sloupců

Můžete použít dílčí dotaz a seskupit data podle kampaně:

SELECT campaign,MAX(event_type) AS event_type,
CASE WHEN MAX(sub_event_date)>MAX(main_event_date) THEN MAX(sub_event_date) ELSE MAX(main_event_date) END  AS event_date,
CASE WHEN MAX(sub_event_date)>MAX(main_event_date) THEN MAX(sub_event_quantity) ELSE MAX(main_event_quantity) END AS event_quantity
FROM (
SELECT 
campaign,
event_type,
coalesce(date_offered, date_ordered) as main_event_date,
coalesce(date_delivered, date_recorded, date_completed) as sub_event_date,
coalesce(quantity_offered, quantity_ordered) as main_event_quantity,
coalesce(quantity_delivered, quantity_recorded, quantity_completed) as sub_event_quantity
FROM logistics lg) l
GROUP BY campaign


  1. ScaleGrid DBaaS v užším výběru pro Cloud Excellence Awards 2018

  2. Chyba při pokusu o načtení textu chyby ORA-01804

  3. Android:Hromadné vkládání, když je podpora InsertHelper ukončena

  4. Jak vypočítat procento růstu týden po týdnu v MySQL