sql >> データベース >  >> RDS >> Mysql

複数の列に対して相関サブクエリを使用する

    サブクエリを使用して、キャンペーンごとにデータをグループ化できます:

    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. ホットスタンバイ展開のトレードオフ

    2. MySQL:MyISAMからInnoDBに変換すると、クエリが高速になります...?

    3. Countを使用すると、Mysqlは1行のみを返します

    4. 文字列内の文字のすべての出現を検索するOracleクエリ