Половина из каждой группы

Slant-shadow
Дата: 18.09.2015 23:16:14
Как вывести половину записей из каждой группы?
Dimitry Sibiryakov
Дата: 18.09.2015 23:21:12

Выводить только нечётные, например.

Posted via ActualForum NNTP Server 1.5

ровнюмбер
Дата: 18.09.2015 23:23:14
Slant-shadow,

выводить результат фетча через раз при сортировке по группам
Slant-shadow
Дата: 18.09.2015 23:56:28
ровнюмбер
Slant-shadow,

выводить результат фетча через раз при сортировке по группам

А есть пример такой реализации?
JDS
Дата: 19.09.2015 08:57:57
Slant-shadow
Как вывести половину записей из каждой группы?

Например
+
with t as (select 'Группа1' group_name from dual
           union all 
           select 'Группа2' group_name from dual
           union all 
           select 'Группа2' group_name from dual
           union all 
           select 'Группа3' group_name from dual
           union all 
           select 'Группа3' group_name from dual
           union all 
			  select 'Группа3' group_name from dual
           union all 
           select 'Группа3' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual)
select group_name
  from (select group_name,
               count(*) over(partition by group_name) cnt,
        			row_number() over(partition by group_name order by group_name) rnum
         from t) tt
 where cnt =1 or rnum <= cnt/2 

Slant-shadow
Выводить только нечётные, например.

Например
+
with t as (select 'Группа1' group_name from dual
           union all 
           select 'Группа2' group_name from dual
           union all 
           select 'Группа2' group_name from dual
           union all 
           select 'Группа3' group_name from dual
           union all 
           select 'Группа3' group_name from dual
           union all 
			  select 'Группа3' group_name from dual
           union all 
           select 'Группа3' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual
           union all 
           select 'Группа4' group_name from dual)
select rnum, group_name
  from (select group_name,
               count(*) over(partition by group_name) cnt,
        			row_number() over(partition by group_name order by group_name) rnum
         from t) tt
 where mod(rnum, 2) <> 0
JDS
Дата: 19.09.2015 09:02:04
автор
Как вывести половину записей из каждой группы?

Видимо, речь про Using Dynamic SQL
JDS
Дата: 19.09.2015 09:02:51
Извините, ошибся номером )
Slant-shadow
Дата: 19.09.2015 11:34:31
JDS
автор
Как вывести половину записей из каждой группы?

Видимо, речь про Using Dynamic SQL

Предполагал выводить половину в операторе having после Group by
JDS
Дата: 19.09.2015 21:20:37
Slant-shadow, про дин скл это из другого топика, не обращай внимания )