powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Max count
11 сообщений из 11, страница 1 из 1
Max count
    #39507099
Nadzeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 таблицы - Клиенты (client_id, name, address) и Заказы (order_id, user_id, summa). Как выбрать клиента, который сделал самое большое количество заказов?

Запрос, который показывает сколько у каждого клиента заказов:

select Users.name, count (Orders.user_id) from Users, Orders
where Users.user_id=Orders.user_id
group by Users.name

Но как выбрать одного клиента с max числом заказов? Подскажите пожалуйста!
...
Рейтинг: 0 / 0
Max count
    #39507102
Nadzeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за описку, Client и User - одно и тоже.
...
Рейтинг: 0 / 0
Max count
    #39507105
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что именно у вас не получается?
...
Рейтинг: 0 / 0
Max count
    #39507119
Озо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nadzeya,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select * from
(
select Users.name, 
          count (Orders.user_id) cnt,
          row_number() over (order by count(Orders.user_id) desc) rn
from Users, Orders
where Users.user_id=Orders.user_id
group by Users.name
)
where rn=1 
...
Рейтинг: 0 / 0
Max count
    #39507148
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более эффективно было бы вначале найти user_id итолько потом джойн с USERS.

SY.
...
Рейтинг: 0 / 0
Max count
    #39507209
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
откуда берутся такие вопросы? это уже второй.
собеседованием Озо или?
...
Рейтинг: 0 / 0
Max count
    #39507269
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была история на форумс.оракле.ком, там за ответы присваивают статусы. Некое чудо отыскивало отвеченные темы, брало вопрос под одним ником и давало ответ под другим и получало благодарность от первого... Озо, видимо, придумывает вопросы само, насколько хватает фантазии.
...
Рейтинг: 0 / 0
Max count
    #39507272
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadzeyaЕсть 2 таблицы - Клиенты (client_id, name, address) и Заказы (order_id, user_id, summa). Как выбрать клиента, который сделал самое большое количество заказов?

Запрос, который показывает сколько у каждого клиента заказов:

select Users.name, count (Orders.user_id) from Users, Orders
where Users.user_id=Orders.user_id
group by Users.name

Но как выбрать одного клиента с max числом заказов? Подскажите пожалуйста!

если больше одного клиента сделали самое большое количество заказов, тогда как?

.....
stax
...
Рейтинг: 0 / 0
Max count
    #39507309
фирст-ласт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxесли больше одного клиента выдавать среднее лингвистмческое их имен.
...
Рейтинг: 0 / 0
Max count
    #39507339
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фирст-ластStaxесли больше одного клиента выдавать среднее лингвистмческое их имен.
Код: plsql
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.
28.
29.
30.
31.
SQL> ed
Wrote file afiedt.buf

  1  with clients (client_id,name) as (
  2  select 1,'Nadzeya' from dual union all
  3  select 2,'фирст-ласт' from dual union all
  4  select 3,'Stax' from dual )
  5  ,orders (order_id, user_id, summa) as (
  6  select 100,1,7 from dual union all
  7  select 101,2,0.1 from dual union all
  8  select 103,2,0.2 from dual union all
  9  select 103,3,0.3 from dual union all
 10  select 105,1,9 from dual
 11  )
 12  ,oo as (
 13  select
 14    user_id
 15   ,rank() over (order by count(*) desc) rk
 16   ,count(*) cc
 17  from orders
 18  group by user_id)
 19  select
 20    listagg(nvl(name,'*Тайняк*'), ', ') within group(order by name) name_avg_lingv
 21  ,max(o.cc) cc
 22  from oo o,clients c
 23* where c.client_id(+)=o.user_id and o.rk=1
SQL> /

NAME_AVG_LINGV                                   CC
---------------------------------------- ----------
Nadzeya, фирст-ласт                               2




.....
stax
...
Рейтинг: 0 / 0
Max count
    #39508027
Nadzeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь.

-2-,
не говорите ерунды.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Max count
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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