Received: from localhost (maia-3.hub.org [200.46.204.184]) by postgresql.org (Postfix) with ESMTP id EE6AC9FBED5 for ; Thu, 22 Feb 2007 09:34:44 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-new, port 10024) with ESMTP id 89647-02 for ; Thu, 22 Feb 2007 09:34:33 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.186]) by postgresql.org (Postfix) with ESMTP id 1BDEC9FBEE4 for ; Thu, 22 Feb 2007 09:34:38 -0400 (AST) Received: from [194.25.154.138] (helo=webserv.wug.de) by mrelayeu.kundenserver.de (node=mrelayeu8) with ESMTP (Nemesis), id 0ML31I-1HKE5i0Iup-0006fU; Thu, 22 Feb 2007 14:34:34 +0100 Received: from kretschmer by webserv.wug.de with local (Exim 3.36 #1) id 1HKE5h-0007QV-00 for pgsql-sql@postgresql.org; Thu, 22 Feb 2007 14:34:33 +0100 Date: Thu, 22 Feb 2007 14:34:33 +0100 From: "A. Kretschmer" To: pgsql-sql@postgresql.org Subject: Re: how to generate a list of distinct scalar values from a column which type is array Message-ID: <20070222133433.GF15488@a-kretschmer.de> References: <2cfc7c940702211021u1ba47031l25112a69cfb18338@mail.gmail.com> <20070222132536.GE15488@a-kretschmer.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070222132536.GE15488@a-kretschmer.de> X-OS: Debian/GNU Linux - weil ich es mir Wert bin! X-Message-Flag: "Windows" is not the answer. "Windows" is the question and the answer is "no"! User-Agent: Mutt/1.5.9i X-Provags-ID: kundenserver.de abuse@kundenserver.de login:51ea9561fc3f6d9539a2acd743e4748c X-Provags-ID2: V01U2FsdGVkX1/VlJ8NP51Ue+DcKEFMhm3/I2LRmA+RkYyXGIIhkvc4TQUj/a3F+h/fAMV7CqW9m7JLNit/2XC5IctNMbTe10stAmTOPmPitdXvmtIx/7oOX2tIKH2ahDyv X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.437 tagged_above=0 required=5 tests=AWL, BAYES_50, SPF_HELO_PASS X-Spam-Level: X-Archive-Number: 200702/224 X-Sequence-Number: 27558 am Thu, dem 22.02.2007, um 14:25:36 +0100 mailte A. Kretschmer folgendes: > test=*# select * from a; > c > ------------- > {aaa,bb,c} > {dddd,eeee} > {aaa,eeee} > (3 rows) > > > test=*# select distinct c[s] from a, generate_series(1,3)s where c[s] is not null; > c > ------ > aaa > bb > c > dddd > eeee > (5 rows) > > > You need to know the greatest upper dimension of the array, in this case > 3, for the generate_series - function. select distinct c[s] from a, generate_series(1,(select max(array_upper(c,1)) from a))s where c[s] is not null; ;-) Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net