Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объединение двух сгруппированных запросов / 10 сообщений из 10, страница 1 из 1
24.03.2020, 15:52
    #39940620
Филипп_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Ребята, помогите, пожалуйста:

Две таблицы

Результат запроса с группировкой из первой таблицы:

Имя | СOUNT (Кол-во магазинов)
Иванов | 5

Результат выполнения запроса с группировкой по второй таблице

ИД Магазина | SUM (Сумма продаж)
4 | 12 000 рублей

Подскажите, пожалуйста, как объеденить эти два запроса с группировкой, что бы получить в результате

|Имя | СOUNT (Кол-во магазинов) | SUM (Сумма продаж) [/b] |
...
Рейтинг: 0 / 0
24.03.2020, 16:00
    #39940622
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Филипп_777,

join on 5=4+1
...
Рейтинг: 0 / 0
24.03.2020, 16:00
    #39940623
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Филипп_777,

нужен пример

есть --> получить

.....
stax
...
Рейтинг: 0 / 0
24.03.2020, 16:18
    #39940637
Филипп_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Stax, Вот
...
Рейтинг: 0 / 0
24.03.2020, 16:28
    #39940646
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Филипп_777,

Самый банальный GROUP BY. Ас дизайном у тебя прокол. Если ФИО владельца совпадают то вполне возможно что "Федот, да не тот", так-что нужен ID владельца а не ФИО.

SY.
...
Рейтинг: 0 / 0
24.03.2020, 16:46
    #39940653
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Филипп_777,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with t1 (id_mag,fio) as (
select 1,'Иванов' from dual union all
select 2,'Иванов' from dual union all
select 4,'Филипп' from dual union all
select 3,'Смирнов' from dual )
,t2 (id_mag,s) as (
select 1,200 from dual union all
select 2,200 from dual union all
select 3,300 from dual )
select fio,count(distinct(t1.id_mag)) cc_mag,sum(s) ssum
from t1,t2 where t2.id_mag(+)=t1.id_mag
group by fio
order by 1
/



.....
stax
...
Рейтинг: 0 / 0
24.03.2020, 17:19
    #39940663
Филипп_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Stax, Благодарю! Уточни, пожалуйста, что здесь происходит
...
Рейтинг: 0 / 0
24.03.2020, 17:46
    #39940689
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Филипп_777,

Код: 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.
FIO         CC_MAG       SSUM
------- ---------- ----------
Иванов           2        400
Смирнов          1        300
Филипп           1

SQL> ed
Wrote file afiedt.buf

  1  with t1 (id_mag,fio) as (
  2  select 1,'Иванов' from dual union all
  3  select 2,'Иванов' from dual union all
  4  select 4,'Филипп' from dual union all
  5  select 3,'Смирнов' from dual )
  6  ,t2 (id_mag,s) as (
  7  select 1,200 from dual union all
  8  select 2,200 from dual union all
  9  select 3,300 from dual )
 10  select fio,count(distinct(t1.id_mag)) cc_mag,sum(s) ssum
 11  from t1,t2 where t2.id_mag=t1.id_mag
 12  group by fio
 13* order by 1
SQL> /

FIO         CC_MAG       SSUM
------- ---------- ----------
Иванов           2        400
Смирнов          1        300

SQL>



у Филлипа есть магазины без продаж

.....
stax
...
Рейтинг: 0 / 0
25.03.2020, 10:40
    #39940871
Филипп_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Stax, Получается это как аналог Right Join ?
...
Рейтинг: 0 / 0
25.03.2020, 11:13
    #39940882
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение двух сгруппированных запросов
Филипп_777
Stax, Получается это как аналог Right Join ?


почти

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> with t1 (id_mag,fio) as (
  2  select 1,'Иванов' from dual union all
  3  select 2,'Иванов' from dual union all
  4  select 4,'Филипп' from dual union all
  5  select 3,'Смирнов' from dual )
  6  ,t2 (id_mag,s) as (
  7  select 1,200 from dual union all
  8  select 2,200 from dual union all
  9  select 3,300 from dual )
 10  select
 11    fio,count(distinct(t1.id_mag)) cc_mag,sum(s) ssum
 12  from t1 Left Join t2 on (t2.id_mag=t1.id_mag)
 13  group by fio
 14  order by 1
 15  /

FIO         CC_MAG       SSUM
------- ---------- ----------
Иванов           2        400
Смирнов          1        300
Филипп           1



.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объединение двух сгруппированных запросов / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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