Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Warunkowe samodołączenie MySQL

Wydaje się, że potrzebujesz najwcześniejszego „imp” dla każdego użytkownika. Następnie możesz dokonać agregacji według transakcji po tym momencie:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać bezpieczne porównanie o wartości null <=> w czystym SQL?

  2. MySQL - Jak uzyskać listę wartości w Tabeli A, które nie istnieją w Tabeli B?

  3. Zapytanie MySQL z aliasem bez indeksu

  4. Jak zbudować zapytanie UNION z ORDER BY i GROUP BY w konstruktorze zapytań Kohana?

  5. Drukowanie wyniku zapytania mysql ze zmiennej