Re: [SQL] DISTINCT count(*), possible? - Mailing list pgsql-sql

From Tom Lane
Subject Re: [SQL] DISTINCT count(*), possible?
Date
Msg-id 24839.929543079@sss.pgh.pa.us
Whole thread Raw
In response to Re: [SQL] DISTINCT count(*), possible?  (Stuart Rison <stuart@ludwig.ucl.ac.uk>)
Responses Re: [SQL] DISTINCT count(*), possible?
List pgsql-sql
Another way is
SELECT DISTINCT field INTO temp_table FROM mytable;SELECT count(*) FROM temp_table;DROP TABLE temp_table;

which is arguably more efficient than the previous solution
for large tables --- it should involve O(n log n) work rather
than O(n^2).  For a small table, the overhead of creating and
dropping a table might overshadow the actual work, though.

In 6.5 you can use "INTO TEMP temp_table" and avoid worrying
about having to invent distinct temp table names for concurrent
users of the database.

The SQL-standard "SELECT count(DISTINCT field)" would be even nicer,
of course, but I dunno when someone will get around to it...
        regards, tom lane


pgsql-sql by date:

Previous
From: The Hermit Hacker
Date:
Subject: Re: [HACKERS] Postgres mailing lists
Next
From: Roland_DUBOULOZ
Date:
Subject: date