Re: [pgsql-ru-general] аггрегатор по аггрегаторам

From: Sergey Konoplev <gray(dot)ru(at)gmail(dot)com>
To: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: [pgsql-ru-general] аггрегатор по аггрегаторам
Date: 2012-04-13 13:42:19
Message-ID: CAL_0b1uKCgS0TZ8rR_WrEHzYXT47-MuVDTVVDZzgW6uq=qsweg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

Привет,

On Fri, Apr 13, 2012 at 1:05 PM, Dmitry E. Oboukhov <unera(at)debian(dot)org> wrote:
> WITH "a" AS (select * FROM (VALUES (ARRAY[1,2,3,3,4]), (ARRAY[1,2,2,3,4])) t )
> SELECT array_agg(unnest(column1)) FROM "a";
>
> ERROR: set-valued function called in context that cannot accept a set
>
>
> А хотели бы получить общий массив {1,2,3,3,4,1,2,2,3,4}
>
> Как это можно сделать?

WITH a AS (select * FROM (VALUES (ARRAY[1,2,3,3,4]), (ARRAY[1,2,2,3,4])) t )
SELECT array_agg(c) FROM (SELECT unnest(column1) AS c FROM a) AS sq;

>
> И второй вопрос:
>
> допустим имеется массив:
>
> {1,2,3,3,4,1,2,2,3,4}
>
> Как можно посчитать число уникальных элементов в нем?
>
> SELECT COUNT(DISTINCT unnest(ARRAY[1,2,3,3,4,1,2,2,3,4]))
>
> дает ту же ошибку
> --
>
> . ''`. Dmitry E. Oboukhov
> : :' : email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
> `. `~' GPGKey: 1024D / F8E26537 2006-11-21
> `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537

--
Sergey Konoplev

Blog: http://gray-hemp.blogspot.com
LinkedIn: http://ru.linkedin.com/in/grayhemp
JID/GTalk: gray(dot)ru(at)gmail(dot)com Skype: gray-hemp

In response to

Browse pgsql-ru-general by date

  From Date Subject
Next Message Sergey Burladyan 2012-04-13 14:06:15 Re: аггрегатор по аггрегаторам
Previous Message Dmitry E. Oboukhov 2012-04-13 09:05:03 аггрегатор по аггрегаторам