Re: Rewrite without correlated subqueries
От | Mark Fenbers |
---|---|
Тема | Re: Rewrite without correlated subqueries |
Дата | |
Msg-id | 4A8DB4D7.6030102@noaa.gov обсуждение исходный текст |
Ответ на | Rewrite without correlated subqueries (bricklen <bricklen@gmail.com>) |
Ответы |
Re: Rewrite without correlated subqueries
|
Список | pgsql-sql |
Try putting your subqueries into temporary tables, first, inside a BEGIN ... COMMIT block. But your subqueries would producethe negative, i.e., everything except where sitescategory.idsites = ps.idsites. Then reference these temp tablesin your query with inner or outer joins as appropriate. Your new query would not include the ... IN ( <list>) syntax...<br /><br /> Mark<br /><br /> bricklen wrote: <blockquote cite="mid:33b743250908201332k5e7b0e3fga71a1ec6b44f302a@mail.gmail.com"type="cite">Hi All,<br /><br /> I'm having some troublewrapping my head around the syntax to rewrite a query using correlated subqueries, to using outer joins etc.<br /><br/> The query:<br /><br /> SELECT ps.userid,<br /> SUM( ps.hits ) as numhits<br /> FROM primarystatsAS ps<br /> INNER JOIN camp ON <a href="http://camp.id" moz-do-not-send="true" target="_blank">camp.id</a>= ps.idcamp<br /> INNER JOIN sites ON <a href="http://sites.id" moz-do-not-send="true" target="_blank">sites.id</a>= ps.idsite<br /> WHERE camp.idcatprimary NOT IN ( SELECT idcategory FROM sitescategory WHEREsitescategory.idsites = ps.idsites )<br /> AND camp.idcatsecondary NOT IN ( SELECT idcategory FROM sitescategory WHEREsitescategory.idsites = ps.idsites )<br /> GROUP BY ps.userid;<br /><br /> Because I am rewriting this query to useGreenplum, I cannot use correlated subqueries (they are not currently supported).<br /><br /> Can anyone suggest a versionthat will garner the same results? I tried with OUTER JOINS and some IS NULLs, but I couldn't get it right.<br /><br/> Thanks!<br /><br /> bricklen<br /><br /><br /></blockquote>
В списке pgsql-sql по дате отправления: