powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задача SQL
25 сообщений из 40, страница 1 из 2
Задача SQL
    #39842894
vasiliy89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет
помогите написать запрос , сломал голову уже(

во вложении задание , не могу вывести "Кол-во проданных товаров оффлайн", "Сумма проданных товаров оффлайн","Кол-во отмененных товаров онлайн" , "Сумма отмененных товаров онлайн"

Решил делать отдельно каждую таблицу ,потом совместить , но не получается вывести вышеперечисленные поля:

select
t1.id_delivery as "№ поставки",
count(distinct t1.id_agent) as "Кол-во агентов оффлайн" ,
count (t1.is_agent) as "Кол-во отгруже тов оффлай" ,
count (t1.is_util) as "Кол-во утилиз товаров оффлайн"

from tab2 t1
group by t1.id_delivery
;

select
count(distinct t3.id_agent) as "Кол-во агентов онлайн" ,
count(t3.id_type) as "Кол-во проданных тов онлайн",
sum(t3.amount) as "Сумма проданных товаров онлайн"
--count( t4.id_type) as "Кол-во отмен товаров онлайн"

from tab3 t3 /*, tab3 t4*/
where /*t3.id_delivery=t4.id_delivery
and*/ t3.id_type = 1
--and t4.id_type = 2 --(select count(tt.id_type) from tab3 tt where tt.id_type = 2 )
--group by t3.id_delivery
...
Рейтинг: 0 / 0
Задача SQL
    #39842903
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasiliy89,

ни кто не хочет погружаться в твои задачи, у всех свои дела.
Сделай нормально постановку, вот пример, как надо

https://www.sql.ru/forum/1313180/pyatnichnyy-zaprosik
...
Рейтинг: 0 / 0
Задача SQL
    #39842909
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне было не жалко 10 минут, заготовку сделал.
Дальше сами поработайте.

Код: 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.
with t1(ID_delivery, ID_agent, IS_agent, IS_util, Amount, ID_trade) as (
select 1, 11, 'y', 'y', null, 11 from dual union all
select 1, 11, 'y', null, 100, 12 from dual union all
select 1, 12, 'y', null, 100, 13 from dual union all
select 1, 12, 'y', 'y', null, 14 from dual union all
select 2, 12, 'y', null, 100, 11 from dual union all
select 2, 12, null, null, null, 12 from dual union all
select 2, 13, 'y', null, 100, 13 from dual union all
select 2, 14, 'y', null, 100, 14 from dual union all
select 2, 11, 'y', 'y', null, 15 from dual
), t2(ID_delivery, ID_agent, ID_type, Amount, ID_trade) as (
select 1, 52,  1, 100, 1 from dual union all
select 1, 52,  2, 100, 1 from dual union all
select 1, 53,  1, 100, 2 from dual union all
select 1, 58,  1, 100, 3 from dual union all
select 1, 58,  1, 100, 4 from dual union all
select 1, 900, 1, 100, 5 from dual union all
select 1, 900, 2, 100, 5 from dual union all
select 2, 53,  1, 100, 1 from dual union all
select 2, 60,  1, 100, 2 from dual
)
select id_delivery, id_agent, amount, count(is_util) over(partition by tabl) cnt_util
  from (
select 't1' tabl, id_delivery, id_agent, nvl(amount, 0) amount, is_util from t1
 union all
select 't2' tabl, id_delivery, id_agent, amount, null is_util from t2
       )

...
Рейтинг: 0 / 0
Задача SQL
    #39842933
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,

да я не из вредности ))

«Правильно заданный вопрос – половина ответа»(с)
https://habr.com/ru/post/81046/
...
Рейтинг: 0 / 0
Задача SQL
    #39842957
slow brain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
with tab2(ID_delivery,ID_agent,IS_agent,IS_util,Amount,ID_trade) as 
(select 1,11,'y','y',null,11 from dual union all
select 1,11,'y','',100,12 from dual union all
select 1,12,'y','',100,13 from dual union all
select 1,12,'y','y',null,14 from dual union all
select 2,12,'y','',100,11 from dual union all
select 2,12,'','',null,12 from dual union all
select 2,13,'y','',100,13 from dual union all
select 2,14,'y','',100,14 from dual union all
select 2,11,'y','y',null,15 from dual )
, tab3( ID_delivery, ID_agent, ID_type, Amount,ID_trade) as 
(select 1, 52,1,100,1 from dual union all
select 1, 52,2,100,1 from dual union all
select 1, 53,1,100,2 from dual union all
select 1, 58,1,100,3 from dual union all
select 1, 58,1,100,4 from dual union all
select 1, 900,1,100,5 from dual union all
select 1, 900,2,100,5 from dual union all
select 2, 53,1,100,1 from dual union all
select 2, 60,1,100,2 from dual )
    , tab2_gr as (
    select ID_delivery
        , count(distinct ID_agent) count_a
        , count(distinct case when is_agent = 'y' then ID_trade end) count_ship
        , count(distinct case when IS_util = 'y' then ID_trade end) count_util
        , count(distinct case when is_agent = 'y' and IS_util is null  then ID_trade end) count_sell
        , sum(case when is_agent = 'y' and IS_util is null  then Amount else 0 end) amount_sell
      from tab2 
     group by ID_delivery)
    , tab3_gr as (
    select id_delivery
         , sum(count_a) count_a
         , sum(sign_sell) count_sell
         , sum(sum_sell) sum_sell
         , sum(count_canc) count_canc
         , sum(sum_canc) sum_canc
      from (select id_delivery, id_trade
                 , count(distinct ID_agent) count_a
                 , sum( case ID_type when 1 then 1 when 2 then -1 end ) sign_sell
                 , sum( case ID_type when 1 then 1 when 2 then -1 end * Amount) sum_sell
                 , count(distinct case when ID_type = 2 then ID_trade end) count_canc
                 , sum( case when ID_type = 2 then Amount else 0 end) sum_canc
              from tab3 group by id_delivery, id_trade) group by id_delivery
      )
select case when grouping (tab2.id_delivery) = 1 then 'Итого' else to_char(tab2.id_delivery) end id_delivery
     , sum(tab2.count_a) count_a_off
     , sum(tab2.count_ship) count_ship_off
     , sum(tab2.count_util) count_util_off
     , sum(tab2.count_sell) count_sell_off
     , sum(tab2.amount_sell) amount_sell_off
     , sum(tab3.count_a) count_a_on
     , sum(tab3.count_sell) count_sell_on
     , sum(tab3.sum_sell) sum_sell_on
     , sum(tab3.count_canc) count_canc_on
     , sum(tab3.sum_canc) sum_canc_on
  from tab2_gr tab2
     , tab3_gr tab3
 where tab2.id_delivery = tab3.id_delivery
  group by rollup ( tab2.id_delivery); 



Передайте им, что они поступают не очень этично, отзывая офферы.
...
Рейтинг: 0 / 0
Задача SQL
    #39842967
vasiliy89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо!!!!
...
Рейтинг: 0 / 0
Задача SQL
    #39842968
vasiliy89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
slow brain, кому?)
...
Рейтинг: 0 / 0
Задача SQL
    #39842969
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.sql.ru/forum/1288307/vakansiya-otchetnost-moskva
Вот это они, как раз это задание и высылали.

Вот мой вариант решения:

Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
with q (ID_delivery,ID_agent, IS_agent, IS_util, Amount,ID_trade) as (
select 1, 11, 'Y', 'Y', null, 11 from dual union all
select 1, 11, 'Y', null, 100, 12 from dual union all
select 1, 12, 'Y', null, 100, 13 from dual union all
select 1, 12, 'Y', 'Y', null, 14 from dual union all
select 2, 12, 'Y', null, 100, 11 from dual union all
select 2, 12, null, null, null, 12 from dual union all
select 2, 13, 'Y', null, 100, 13 from dual union all
select 2, 14, 'Y', null, 100, 14 from dual union all
select 2, 11, 'Y', 'Y', null, 15 from dual
)
, q1(ID_delivery, ID_agent, ID_type, Amount, ID_trade) as (
select 1, 52, 1, 100, 1 from dual union all
select 1, 52, 2, 100, 1 from dual union all
select 1, 53, 1, 100, 2 from dual union all
select 1, 58, 1, 100, 3 from dual union all
select 1, 58, 1, 100, 4 from dual union all
select 1, 900, 1, 100, 5 from dual union all
select 1, 900, 2, 100, 5 from dual union all
select 2, 53, 1, 100, 1 from dual union all
select 2, 60, 1, 100, 2 from dual)
select nvl(to_char(z1.id_delivery),'ИТОГО:')
, sum(r1)
, sum(r2)
, sum(r3)
, sum(r4)
, sum(r5)
, sum(r6)
, sum(r7)
, sum(r8)
, sum(r9)
, sum(r10)
 from 
(select q.id_delivery
, count(distinct q.id_agent) as r1
, sum(case when q.is_agent = 'Y' then 1 else 0 end) as r2
, sum(case when q.is_util = 'Y' then 1 else 0 end) as r3
, count(distinct q.id_trade) as r4
, sum(q.amount) as r5
from q
group by rollup(q.id_delivery)) z1
join
(select q1.id_delivery
, count(distinct q1.id_agent) as r6
, sum(case when q1.ID_type = 1 then 1 else 0 end) as r7
, sum(case when q1.ID_type = 1 then q1.amount else 0 end) as r8
, sum(case when q1.ID_type = 2 then 1 else 0 end) as r9
, sum(case when q1.ID_type = 2 then q1.amount else 0 end) as r10
from q1
group by q1.id_delivery) z2 on z1.id_delivery = z2.id_delivery
group by rollup(z1.id_delivery)



автор>>Решение на проходной балл, есть ошибки в результатах.
Так же мне скинули решение, которое они считают близким к идеальному.

Под ошибками подразумевалось то, что я не сделал роллап по дистинкт каунту ;D
...
Рейтинг: 0 / 0
Задача SQL
    #39842975
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда пришлют ответом своё решение, скажи что в итоговой строке они выводят.
Интересно, исправились они или нет.
...
Рейтинг: 0 / 0
Задача SQL
    #39842982
slow brain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasiliy89, вот им. Они и мне это задание высылали.
Dshedoo https://www.sql.ru/forum/1288307/vakansiya-otchetnost-moskva
Вот это они, как раз это задание и высылали.
...
Рейтинг: 0 / 0
Задача SQL
    #39846375
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slow brain,

Предыдущий кандидат целый год продержался))
...
Рейтинг: 0 / 0
Задача SQL
    #39846403
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slow brainПередайте им, что они поступают не очень этично, отзывая офферы.
зато правильно
Код: sql
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
with tab2(ID_delivery,ID_agent,IS_agent,IS_util,Amount,ID_trade) as (
	select 1,11,'y','y',null,11 from dual union all
	select 1,11,'y','',100,12 from dual union all
	select 1,12,'y','',100,13 from dual union all
	select 1,12,'y','y',null,14 from dual union all
	select 2,12,'y','',100,11 from dual union all
	select 2,12,'','',null,12 from dual union all
	select 2,13,'y','',100,13 from dual union all
	select 2,14,'y','',100,14 from dual union all
	select 2,11,'y','y',null,15 from dual 
), tab3( ID_delivery, ID_agent, ID_type, Amount,ID_trade) as (
	select 1, 52,1,100,1 from dual union all
	select 1, 52,2,100,1 from dual union all
	select 1, 53,1,100,2 from dual union all
	select 1, 58,1,100,3 from dual union all
	select 1, 58,1,100,4 from dual union all
	select 1, 900,1,100,5 from dual union all
	select 1, 900,2,100,5 from dual union all
	select 2, 53,1,100,1 from dual union all
	select 2, 60,1,100,2 from dual 
)
, sales(id_delivery, ID_agent_offline, IS_agent,IS_util,Amount_offline, ID_trade_offline, id_agent_online, id_type, amount_online, id_trade_online) as (
	select id_delivery, ID_agent, IS_agent,IS_util,Amount, ID_trade, null, null, null, null from tab2 
	union all
	select id_delivery, null, null, null, null, null,  ID_agent, ID_type, Amount,ID_trade from tab3
)
select 
	id_delivery, 
	count(distinct id_agent_offline) count_agent_offline, 
	count(distinct decode(is_agent, 'y', id_trade_offline)) count_ship,
	count(distinct decode(is_util, 'y', id_trade_offline)) count_util,
	count(distinct case when is_agent = 'y' and IS_util is null then ID_trade_offline end) count_sell,
	sum(case when is_agent = 'y' and IS_util is null then Amount_offline end) amount_sell,
	count(distinct ID_agent_online) count_agent_online,
	sum(decode(id_type, 1, 1, 2, -1)) count_sell,
	sum(decode(id_type, 1, 1, 2, -1) * Amount_online) sum_sell,
	count(decode(id_type, 2, id_trade_online)) count_canc,
	sum(decode(id_type, 2, amount_online)) sum_canc
from sales
group by rollup(id_delivery);


...
Рейтинг: 0 / 0
Задача SQL
    #39846453
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морей
count(distinct id_agent_offline) count_agent_offline,
count(distinct decode(is_agent, 'y', id_trade_offline)) count_ship,
count(distinct decode(is_util, 'y', id_trade_offline)) count_util,
count(distinct case when is_agent = 'y' and IS_util is null then ID_trade_offline end) count_sell,
count(distinct ID_agent_online) count_agent_online,
group by rollup(id_delivery);


Вот о чём я и говорил.
Роллап по дистинкту даст в результате число от max до sum вышестоящих данных, что имеет практическую пользу равную нулю.
...
Рейтинг: 0 / 0
Задача SQL
    #39846474
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dshedoo,

имеет это практическую пользу, или нет, но неправильный роллап - это только первая ошибка в вашем запросе.
вторая - то что вы не сделали FULL JOIN (раз уж вы вообще взялись делать джоин).
...
Рейтинг: 0 / 0
Задача SQL
    #39846491
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морейDshedoo,

имеет это практическую пользу, или нет, но неправильный роллап - это только первая ошибка в вашем запросе.
вторая - то что вы не сделали FULL JOIN (раз уж вы вообще взялись делать джоин).

Итоговая строка - это всё таки подведение итогов вышестоящих данных, а не коня в вакууме.
Фулл джоин излишен, исходя из задания.
З.Ы. в "правильном" решении, там тоже не юзается фулл.
...
Рейтинг: 0 / 0
Задача SQL
    #39846505
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DshedooИтоговая строка - это всё таки подведение итогов вышестоящих данных, а не коня в вакууме.
все верно. я посчитал общее число агентов, совершивших офлайн-продажи, и общее число фактов офлайн-продаж. что именно посчитали вы?
...
Рейтинг: 0 / 0
Задача SQL
    #39846509
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DshedooЗ.Ы. в "правильном" решении, там тоже не юзается фулл. допустим. но вы, как опытный специалист, рассуждающий о практической пользе, могли бы подумать: "хмм, мое решение предполагает, что в каждой поставке должно быть как минимум по одной онлайн и офлайн продаже, иначе эта поставка просто не попадет в отчёт... что-то тут не так"
...
Рейтинг: 0 / 0
Задача SQL
    #39846567
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морейDshedooИтоговая строка - это всё таки подведение итогов вышестоящих данных, а не коня в вакууме.
все верно. я посчитал общее число агентов, совершивших офлайн-продажи, и общее число фактов офлайн-продаж. что именно посчитали вы?

А я вывел итоговую строку.
Итоговая строка - это результат агрегирования вышестоящих данных.
У вас есть набор данных, которые вы агрегируете, а потом делаете агрегацию агрегированных данных и получаете итоговую строку, так?
Роллап агрегирует изначальные данные, присваивая полю нулл.
И это прокатывает во всех случаях, за исключением агрегации distincta.

кит северных морейDshedooЗ.Ы. в "правильном" решении, там тоже не юзается фулл. допустим. но вы, как опытный специалист, рассуждающий о практической пользе, могли бы подумать: "хмм, мое решение предполагает, что в каждой поставке должно быть как минимум по одной онлайн и офлайн продаже, иначе эта поставка просто не попадет в отчёт... что-то тут не так"

По той же причине, почему вы не написали where id_agent in (1,2).
Ведь ваше же решение предполагает выводить все данные из таблиц, а просят вернуть только 1 и 2 id_agent.
Потому что это просто излишне, исходя из задания.
З.Ы. хватит уже высасывать из пальца, ещё скажите что на нулл надо было проверять каждое поле.
...
Рейтинг: 0 / 0
Задача SQL
    #39846592
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dshedooкит северных морейя посчитал общее число агентов, совершивших офлайн-продажи, и общее число фактов офлайн-продаж. что именно посчитали вы?
А я вывел итоговую строку.
Итоговая строка - это результат агрегирования вышестоящих данных.
Гм... "И ты прав" (с)
Однако, судя по

Dshedooавтор>>Решение на проходной балл, есть ошибки в результатах.
Так же мне скинули решение, которое они считают близким к идеальному.
Под ошибками подразумевалось то, что я не сделал роллап по дистинкт каунту ;D

постановщик имел ввиду агрегацию, отличную от суммирования строк отчета.
В самом деле, пусть зарегистрирована сотня агентов, но реально работает только один.
Должен ли результат в итоге по полю "количество уникальных агентов" выдать "100500" как резульлтат суммирования единички из всех строк отчета?
А что эта цифра будет означать в практическом плане?
В конкретной постановке нарвал (не не белуха же :) выглядит заметно более правым.
...
Рейтинг: 0 / 0
Задача SQL
    #39846595
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DshedooУ вас есть набор данных, которые вы агрегируете, а потом делаете агрегацию агрегированных данных и получаете итоговую строку, так?
нет, не так. group by rollup(column) - это, грубо говоря,
Код: plsql
1.
2.
3.
select column, avg(value) from table group by column 
union all
select null, avg(value) from table


разницу между написанным выше и avg(avg(value)) надо объяснять?

DshedooПотому что это просто излишне, исходя из задания.
З.Ы. хватит уже высасывать из пальца, ещё скажите что на нулл надо было проверять каждое поле.
да ради бога. повторяйте себе это почаще. это вы не можете тестовое задание на сотку в месяц решить, не я.
...
Рейтинг: 0 / 0
Задача SQL
    #39846760
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousДолжен ли результат в итоге по полю "количество уникальных агентов" выдать "100500" как резульлтат суммирования единички из всех строк отчета?

Именно так, потому что мы выводим "ИТОГО" для данных, а не общее кол-во уникальных агентов.

А есть у нас в будут в продажах сотни строк с кол-вом 1-5, а в "итого" выводится 94, то это правильнее?
Или пару миллионов строк, с "2" в итого.

Я к тому, что при таком подходе данные в итоговой строке никак не связаны с вышестоящими данными, поэтому выводить их как "ИТОГО" некорректно.
...
Рейтинг: 0 / 0
Задача SQL
    #39846783
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dshedoo,

вы итого по средним величинам как считать будете? как сумму средних? или как среднее от средних? какой у полученного результата будет практический смысл, кроме того, что он "итого для вышестоящих данных"?
...
Рейтинг: 0 / 0
Задача SQL
    #39846792
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морейDshedoo,

вы итого по средним величинам как считать будете? как сумму средних? или как среднее от средних? какой у полученного результата будет практический смысл, кроме того, что он "итого для вышестоящих данных"?

Точно так же, как считает avg() - соотношение суммы к кол-ву.
Только если мы берём не агрегированные данные, то там 1 строка соответствует 1 кол-ву, а в агрегированных данных уже 1 строка не соответствует 1 кол-ву.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with q(id,amt) as (
select 1, 100 from dual union all
select 1, 100 from dual union all
select 2, 100 from dual union all
select 2, 200 from dual union all
select 3, 100 from dual)

, w as (select id, sum(amt) as z, count(*) as x, sum(amt)/count(*) as c, avg(amt) as v from q group by rollup(id))

select * from w
union all
select null, sum(z), sum(x), sum(z)/sum(x), avg(v) from w where id is not null
...
Рейтинг: 0 / 0
Задача SQL
    #39846843
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dshedooandrey_anonymousДолжен ли результат в итоге по полю "количество уникальных агентов" выдать "100500" как резульлтат суммирования единички из всех строк отчета?

Именно так, потому что мы выводим "ИТОГО" для данных, а не общее кол-во уникальных агентов.
Ну и напрасно.
Потому что:
- строка "ИГОГО" не обязана быть СУММОЙ строк отчета. Да, чаще всего именно так. Но не всегда.
- любая цифра в отчете должна иметь практический смысл, заявлянный в шапке отчета.
В частности, в варианте
период количество активных агентов количество операций...май 10 800июнь 8 300...по году 11 1100
число 11 будет иметь реальный практический смысл в отличие от 18
...
Рейтинг: 0 / 0
Задача SQL
    #39846849
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dshedoo
Код: plsql
1.
sum(z)/sum(x)


Ну вот видите, и в Вашем варианте среднее по отчету - не среднее по строкам отчета, а средневзвешенное, т.е. соответствует avg(вся выборка) и не может быть проверено на основе данных отчета, если в выходной форме отсутствует "x".
Таким образом Вы дезавуировали собственное утверждение.
Полагаю, на этом увлекательную дискуссию можно завершать.
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задача SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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