Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Суммарное количество неповторяющихся элементов массива / 15 сообщений из 15, страница 1 из 1
15.08.2008, 12:45
    #35489456
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Подскажите, пожалуйста.

К примеру, есть таблица

a*****|*******b
______|________________
1-------|-------вдлаолва
2-------|--------ывдалоылвдоа
1-------|--------121212
2-------|--------ыфдалоывдлоа


Нужно посчитать суммарное количество всех неповторяющихся элементов в столбце 'a', в даном случе оно = 2.

это:
http://www.sai.msu.su/~megera/wiki/intarray
видел... но не совсем понял, что как это подключить, да и вообще желательно сделать это стандартными инструментами.... Покажите дорогу, пожалуйста..

Заранее благодарен...
...
Рейтинг: 0 / 0
15.08.2008, 12:50
    #35489485
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
select count(distinct a) from t
...
Рейтинг: 0 / 0
15.08.2008, 12:53
    #35489499
chAlx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Только я хотел ткнуть носом в доку про группировку .. Кстати, с GROUP BY план скорее всего будет идентичным.
...
Рейтинг: 0 / 0
15.08.2008, 13:23
    #35489625
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Большое спасибо. Очень помогло...

Покажите, пожалуйста, пример, в котором идет выборка неповторяющихся значений из одного из столбцов таблицы в массив.
...
Рейтинг: 0 / 0
15.08.2008, 13:56
    #35489749
tadmin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Большой Синий КитБольшое спасибо. Очень помогло...
Покажите, пожалуйста, пример, в котором идет выборка неповторяющихся значений из одного из столбцов таблицы в массив.
Ну вы и ленивые там, на берегу Днепра.
Наверное и галушки телепортируете, как в известном произведении?

Код: plaintext
select ARRAY(select distinct A from table)
...
Рейтинг: 0 / 0
15.08.2008, 13:58
    #35489757
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
:) Да нет, в общем-то... Если честно, то решаю в это время другие задачи, без которых ответ на этот мой вопрос не нужен...
В SQL я очень слаб, поэтому и спрашивал.. :)

Большое Вам спасибо! :)
...
Рейтинг: 0 / 0
15.08.2008, 15:22
    #35490060
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Скажите, пожалуйста, еще одну вещь..
Есть 1-й массив неповторяющихся значений.
Есть 2-й массив неповторяюихся значений.

В первом массиве могут быть значения, дублирующие значения во втором и наборот.
Есть ли оператор, способ объедиения их в один с неповторяющимся значениями?

Заранее благодарен... :) Вот ищу - ищу, но никак не могу найти способ....:(
...
Рейтинг: 0 / 0
15.08.2008, 15:36
    #35490112
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Большой Синий КитЕсть 1-й массив неповторяющихся значений.
Есть 2-й массив неповторяюихся значений.

Есть ли оператор, способ объедиения их в один с неповторяющимся значениями?Сформулируйте изначальную задачу. Может удастся её решить без массивов. Имхо, они не нативны для SQL.
...
Рейтинг: 0 / 0
15.08.2008, 16:05
    #35490194
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Спасибо за отзывы.!
Хорошо... :)

К примеру, есть определенное количество персон, у каждой из них свой уникальный идентификатор.

Определенный действия, совершаемые над этими персонами, заносятся в разные таблицы, в каждую из которых записывается идентификатор персоны.

Нужно провести поиск по всем таблицам с определенным критерием поиска, и затем сформировать массив с неповторяющимися идентификаторами, чтобы затем получить длину этого массива - таким образом получим количество персон по заданным критериям поиска....

Результат будет отображатся в ява-приложении. Но получить этот результат хотелось бы только средстами SQL, потому что эти критерии поиска оформлены в xml, его обработка уже создана, и остается только вписать SQL-запросы, соответстующие каждому конкретному элементу.....
...
Рейтинг: 0 / 0
15.08.2008, 16:10
    #35490207
chAlx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Т.е. в ответе должно быть просто число? Это какой-же язык приучает к использованию для этого массивов.. :))
...
Рейтинг: 0 / 0
15.08.2008, 16:14
    #35490217
tadmin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Большой Синий Кит
Определенный действия, совершаемые над этими персонами, заносятся в разные таблицы, в каждую из которых записывается идентификатор персоны.
По-моему, тут заложен источник дальнейших проблем.
Чтобы эффективно решать задачу на SQL, лучше иметь общую таблицу.
Код: plaintext
1.
2.
3.
4.
create table PersonActions(
ActionID int,
PersonID int,
ActionTime,
...)
Вместе со справочником персон и действий это даст возможность любых манипуляций на SQL

Это не запрет на использование разных таблиц предметной области, если в них есть необходимость.
...
Рейтинг: 0 / 0
15.08.2008, 16:14
    #35490220
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Хорошо, а каким образом тогда мне сделать выборку из нескольких таблиц описанным выше образом?
...
Рейтинг: 0 / 0
15.08.2008, 16:16
    #35490227
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
Большой Синий КитК примеру, есть определенное количество персон, у каждой из них свой уникальный идентификатор.пусть есть таблица persons с полями (id, name,..)

Большой Синий КитОпределенный действия, совершаемые над этими персонами, заносятся в разные таблицы, в каждую из которых записывается идентификатор персоны.person_actions с полями (action_id, person_id,..) и person_operations с полями (operation_id, person_id,..)

Большой Синий КитНужно провести поиск по всем таблицам с определенным критерием поиска, и затем сформировать массив с неповторяющимися идентификаторами, чтобы затем получить длину этого массива - таким образом получим количество персон по заданным критериям поиска....select count(*) from ( select person_id from person_actions where ... union select person_id from person_operations where ... ) as a;
...
Рейтинг: 0 / 0
15.08.2008, 16:16
    #35490229
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
tadmin
Я с Вами абсолютно согласен, но понимаете, приложение уже создано, я дорабатываю, добавляю новые функции, поэтому приходится изворачиваться...
...
Рейтинг: 0 / 0
15.08.2008, 16:24
    #35490264
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммарное количество неповторяющихся элементов массива
LeXa NalBat Большой Синий КитК примеру, есть определенное количество персон, у каждой из них свой уникальный идентификатор.пусть есть таблица persons с полями (id, name,..)

Большой Синий КитОпределенный действия, совершаемые над этими персонами, заносятся в разные таблицы, в каждую из которых записывается идентификатор персоны.person_actions с полями (action_id, person_id,..) и person_operations с полями (operation_id, person_id,..)

Большой Синий КитНужно провести поиск по всем таблицам с определенным критерием поиска, и затем сформировать массив с неповторяющимися идентификаторами, чтобы затем получить длину этого массива - таким образом получим количество персон по заданным критериям поиска....select count(*) from ( select person_id from person_actions where ... union select person_id from person_operations where ... ) as a;

Огромное Вам спасибо! :) Надо учить SQL... а то знаний мало....
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Суммарное количество неповторяющихся элементов массива / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]