J'écris une requête sur une base de données PostgreSQL, et je ne suis pas sûr de savoir comment faire un décompte des valeurs non nulles après une jointure. MySQL Je voudrais écrire:postgresql vs mysql left join
select count(a.clicker_id), count(b.clicker_id) from
(select * from events where type='click') a
left join (select * from tbl_events where type='conversion')b
on a.clicker_id=b.clicker_id
En fait, en essayant d'écrire ce qui suit sans sous-requête:
select date(cl.created_at), count(cl.click_id) as clicks, count(cp.click_id) as Conversions from events_table cl
left outer join (select click_id, created_at from events_table where type='conversion_potential')cp
on (cl.click_id=cp.click_id)
where cl."type"='click'
and cl.placement_id in (1,2,3)
group by 1
Vous effectuez de facto une jointure interne, en raison de votre clause 'b.type = conversion'. Vérifiez que votre requête MySQL est bien celle que vous avez publiée. –
Juste supprimé ma réponse parce que c'était faux. – fog
Y a-t-il vraiment deux tables, événements et tbl_events comme dans la requête _RIGHT_? –