sql >> Databasteknik >  >> RDS >> Mysql

MySQL villkorad självanslutning

Du verkar behöva den tidigaste "imp" för varje användare. Sedan kan du aggregera efter transaktionerna efter den tidpunkten:

SELECT dl.appid, SUM(dl.type = 'click') / SUM(dl.type = 'imp')
FROM dialoglog dl LEFT JOIN
     (SELECT dl2.userId, MIN(ds) as imp_ds
      FROM dialoglog dl2
      WHERE type = 'imp'
      GROUP BY dl2.userid
     ) dlimp
     ON dl.userid = dlimp.userid 
WHERE dl.ds >= dlimp.imp_ds
GROUP BY dl.appid;



  1. Konfigurera tillgänglighetsgruppanslutning

  2. Hur man återställer MySQL-dump från värd till Docker-behållare

  3. Hur man visar tabelldata tydligare i oracle sqlplus

  4. mysql schemalagda händelse slutar fungera så snart den andra händelsen skapas och körs