powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / ХОчется странного: агрегатную функцию РАНД(ОМ)
3 сообщений из 3, страница 1 из 1
ХОчется странного: агрегатную функцию РАНД(ОМ)
    #35966089
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А встречал ли кто нибудь где-нибудь СКЛ фунцию, которая
возврашает случайную запись в группе. типа вывести
случайного ребенка для каждого родителя

select parent_id, group_rand(*)
from child
group by parent_id

А так занудство получается : в каждой групе надо делать
.... order by rand() limit 1 ........







------------------------------------------
БИТЬ СТРУЕЙ Привилегия !
...
Рейтинг: 0 / 0
ХОчется странного: агрегатную функцию РАНД(ОМ)
    #35966190
ЯЕХХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PostgreSQL 8.3
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
create type t_arand_num_state as (i int, r numeric);

create function arand_num_next (t_arand_num_state, numeric)
returns t_arand_num_state language sql as $$
select (
  $ 1 .i+ 1 ,
  case when  1 . 0 /$ 1 .i > random() then $ 2  else $ 1 .r end
)::t_arand_num_state
$$;

create function arand_num_final (t_arand_num_state)
returns numeric language sql as $$
select $ 1 .r
$$;

create aggregate arand (numeric) (
  stype     = t_arand_num_state,
  sfunc     = arand_num_next,
  finalfunc = arand_num_final,
  initcond  = '(1,)'
);


--test
select g, arand(n)
from (values( 1 , 1 ),( 1 , 2 ),( 1 , 3 ),( 1 , 4 ),( 1 , 5 ),( 1 , 6 ),( 2 , 10 ),( 2 , 11 ),( 2 , 12 )) s(g,n)
group by g
...
Рейтинг: 0 / 0
ХОчется странного: агрегатную функцию РАНД(ОМ)
    #35966197
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯЕХХ,

класс :-) надеюсь когда-нибудь ето встроят в
стандартный СКЛ-4 или СКЛ-5 :-)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / ХОчется странного: агрегатную функцию РАНД(ОМ)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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