Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 max(count())?  [new]
Shaka007
Member

Откуда:
Сообщений: 20
Здравствуйте!
Допустим есть таблица А1
CafeNameDate
RomashkaIvan03.12.2012
RomashkaIvan03.12.2012
RomashkaRoma03.12.2012
Romashkalena03.12.2012
RozaBoris 06.01.2012
KleverPetya07.02.2013
KleverOlya07.02.2013

т.е. сколько и когда люди посещали кафе, есть таки которые приходили в одень день два раза.

Необходимо вывести максимальное кол-во посещений за день одного человека всех кафе, те таблицу типа
CafeMaxCountDate
Romashka203.12.2012
Roza1 06.01.2012
Klever107.02.2013


т.е. ромашку посещали три человека, два из них по разу, третий два, поэтому максимальное число посещений за один день, одним человеком - 2. Подскажите как это можно оформить в запрос. И можно ли использовать что-то типа max(count(Name)) over (partition by ... order by ). или же есть что-то проще? Большое спасибо!
30 май 13, 22:26    [14372823]     Ответить | Цитировать Сообщить модератору
 Re: max(count())?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51768

select from select

Posted via ActualForum NNTP Server 1.5

30 май 13, 22:29    [14372833]     Ответить | Цитировать Сообщить модератору
 Re: max(count())?  [new]
Shaka007
Member

Откуда:
Сообщений: 20
Dimitry Sibiryakov
select from select


Вы могли бы более развернуто? и можно ли обойтись без подзапроса?
30 май 13, 22:36    [14372852]     Ответить | Цитировать Сообщить модератору
 Re: max(count())?  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Shaka007,

select max(count(*)) from v$session group by serial#
30 май 13, 23:01    [14372938]     Ответить | Цитировать Сообщить модератору
 Re: max(count())?  [new]
stax..
Guest
Shaka007
Dimitry Sibiryakov
select from select


Вы могли бы более развернуто? и можно ли обойтись без подзапроса?

с подзапросом
  1  with t as(
  2  select 'Romashka' k, 'Ivan' p, '03.12.2012' d from dual union all
  3  select 'Romashka', 'Ivan', '03.12.2012'  from dual union all
  4  select 'Romashka', 'Ivan', '04.12.2012'  from dual union all
  5  select 'Romashka', 'Ivan', '04.12.2012'  from dual union all
  6  select 'Romashka', 'Ivan', '04.12.2012'  from dual union all
  7  select 'Romashka', 'Roma', '03.12.2012'  from dual union all
  8  select 'Romashka', 'lena', '03.12.2012'  from dual union all
  9  select 'Roza', 'Boris', '06.01.2012'  from dual union all
 10  select 'Klever', 'Petya', '07.02.2013'  from dual union all
 11  select 'Klever', 'Olya', '07.02.2013'  from dual)
 12  , tt as (select k,p,d,count(*) c from t group by k,p,d)
 13  select k,d,max(c) mc from tt group by k,d
 14* order by 1,2
SQL> /

K        D                  MC
-------- ---------- ----------
Klever   07.02.2013          1
Romashka 03.12.2012          2
Romashka 04.12.2012          3
Roza     06.01.2012          1


.....
stax
31 май 13, 09:34    [14373720]     Ответить | Цитировать Сообщить модератору
 Re: max(count())?  [new]
SoRa
Member

Откуда:
Сообщений: 83
В принципе можно вот таким получит результат.

select tt.cafe,max(tt.kol),tt.data
from (select t.data, t.cafe, t.name, count(1) kol
from tmp_clients t
group by t.data, t.cafe, t.name) tt
group by tt.data, tt.cafe;
31 май 13, 14:24    [14375930]     Ответить | Цитировать Сообщить модератору
 Re: max(count())?  [new]
-2-
Member

Откуда:
Сообщений: 15330
SoRa
В принципе можно вот таким получит результат
можно, но ошибка та же.
31 май 13, 14:48    [14376117]     Ответить | Цитировать Сообщить модератору
 Re: max(count())?  [new]
init.ora
Member

Откуда: гетто
Сообщений: 317
вроде так еще
with t as(
   select 'Romashka' k, 'Ivan' p, '03.12.2012' d from dual union all
   select 'Romashka', 'Ivan', '03.12.2012'  from dual union all
   select 'Romashka', 'roma', '03.12.2012'  from dual union all
   select 'Romashka', 'lena', '03.12.2012'  from dual union all  
   select 'Roza', 'Boris', '06.01.2012'  from dual union all
   select 'Klever', 'Petya', '07.02.2013'  from dual union all
   select 'Klever', 'Olya', '07.02.2013'  from dual)

select distinct k,d,max(count(*))over(partition by k,d)m
from t
group by k,p,d
31 май 13, 15:25    [14376408]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить