I think you query is a bit confusing and have many subqueries, so I tried to simplify
If you cant´t have more import_num = 0 to the same login, try this
SELECT count(*)
FROM test_tab tab1
LEFT JOIN test_tab tab2
ON tab1.login = tab2.login AND tab2.import_num = '0'
WHERE
tab2.login IS NULL AND
import_num = '4520440'
otherwise try this
SELECT count(*)
FROM test_tab tab1
LEFT JOIN (
SELECT DISTINCT login FROM test_tab WHERE import_num = '0'
) tab2
ON tab1.login = tab2.login
WHERE
tab2.login IS NULL AND
import_num = '4520440'
Em seg, 21 de ago de 2017 às 15:47, Carlos Augusto Machado <caugustom@xxxxxxxxx> escreveu:
Do you have an index on login column ?If not, try creating an index and taking off those DISTICTs.Em seg, 21 de ago de 2017 às 15:33, Justin Pryzby <pryzby@xxxxxxxxxxxxx> escreveu:On Sat, Aug 19, 2017 at 10:37:56AM -0700, anand086 wrote:
> +-----------------------------------------------------------------------------------------------------------------------------------------------------------+|
> QUERY PLAN
> |+-----------------------------------------------------------------------------------------------------------------------------------------------------------+|
> Aggregate (cost=351405.08..351405.09 rows=1 width=8)
Would you send explain ANALYZE and not just explain ?
Justin
--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance