Обсуждение: Quick SQL question . . .
Can anyone tell me what is the easiest way for me to tell if a column is unique or not? I tried using DISTINCT ON and COUNT together in a SELECT statement, but I can't seem to get the query to work: SELECT DISTINCT ON (identno) count(identno) FROM some_table; I was trying to figure out if the # of unique entries for a particular column is equal to the # of total entries for that column. Any suggestions? Peter
Perhaps a little on the hacky side but.... select count(1) from some_table group by identno order by 1 desc limit 1; If the result is anything other than 1, it's not unique. Sorry for the hacky nature, this is the "thought about it for 10 seconds" version. :-) -Fran Peter E. Chen wrote: >Can anyone tell me what is the easiest way for me to tell if a column is >unique or not? I tried using DISTINCT ON and COUNT together in a SELECT >statement, but I can't seem to get the query to work: > >SELECT DISTINCT ON (identno) count(identno) FROM some_table; > >I was trying to figure out if the # of unique entries for a particular >column is equal to the # of total entries for that column. > >Any suggestions? > >Peter > > > > >---------------------------(end of broadcast)--------------------------- >TIP 4: Don't 'kill -9' the postmaster > >
Try select identno, count(identno) from some_table group by identno having count(identno) >=1; -----Original Message----- From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org]On Behalf Of Peter E. Chen Sent: Thursday, May 09, 2002 2:39 PM To: pgsql-general@postgresql.org Subject: [GENERAL] Quick SQL question . . . Can anyone tell me what is the easiest way for me to tell if a column is unique or not? I tried using DISTINCT ON and COUNT together in a SELECT statement, but I can't seem to get the query to work: SELECT DISTINCT ON (identno) count(identno) FROM some_table; I was trying to figure out if the # of unique entries for a particular column is equal to the # of total entries for that column. Any suggestions? Peter ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster
On Thu, 9 May 2002, Peter E. Chen wrote: > Can anyone tell me what is the easiest way for me to tell if a column is > unique or not? I tried using DISTINCT ON and COUNT together in a SELECT > statement, but I can't seem to get the query to work: > > SELECT DISTINCT ON (identno) count(identno) FROM some_table; > > I was trying to figure out if the # of unique entries for a particular > column is equal to the # of total entries for that column. > > Any suggestions? SELECT identno, count(*) FROM some_table GROUP BY 1 HAVING COUNT(*) = 1; Regards Herbie -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Herbert Liechti http://www.thinx.ch ThinX networked business services Adlergasse 5, CH-4500 Solothurn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Is it just me or do the suggestion made look wrong to anyone else?
Anyway, this is the closest to my mind and I think what I think is the mistake
is just a typo. So I would use.
SELECT identno, count(identno)
FROM some_table
GROUP BY identno
HAVING count(identno) > 1
or even
SELECT count(1) FROM (
SELECT count(identno)
FROM some_table
GROUP BY identno
HAVING count(identno) > 1) a
either one of which will return one of more rows if Peter's uniqueness test
fails.
Right, now someone can correct me :)
On Thu, 9 May 2002, Marie G. Tuite wrote:
> Try
>
> select identno, count(identno) from some_table group by identno having
> count(identno) >=1;
>
>
> -----Original Message-----
> From: pgsql-general-owner@postgresql.org
> [mailto:pgsql-general-owner@postgresql.org]On Behalf Of Peter E. Chen
> Sent: Thursday, May 09, 2002 2:39 PM
> To: pgsql-general@postgresql.org
> Subject: [GENERAL] Quick SQL question . . .
>
>
> Can anyone tell me what is the easiest way for me to tell if a column is
> unique or not? I tried using DISTINCT ON and COUNT together in a SELECT
> statement, but I can't seem to get the query to work:
>
> SELECT DISTINCT ON (identno) count(identno) FROM some_table;
>
> I was trying to figure out if the # of unique entries for a particular
> column is equal to the # of total entries for that column.
>
> Any suggestions?
>
> Peter
>
--
Nigel J. Andrews
Director
---
Logictree Systems Limited
Computer Consultants