Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
странности с групп бай.
Оракл 12.2 на линуксе. RAC
Выполняю запрос, данных там миллионы строк, с воспроизведением будут проблемы :-)
получаю результат, с дублями полей из групп бай.
select t.brid, 
sum(dl.summ/k.krsp),
s.summ summ_sk,
case when nvl(s.summ,0)<>0 then  sum(dl.summ/k.krsp)/(s.summ) else null end k
from doc d
join docl dl on dl.did=d.id
join tov t on t.id=dl.tid
join docsub ds on ds.id=d.id
join krs_day k on trunc(d.DT)= K.DT and k.currid= 22
left join(
select aa.brid,avg(aa.summ)summ from(
select t.brid,s1.dt dt,sum(s1.q
*t.cena0/k.krsp)/2 summ
from(select s.tid,s.dt dt,sum(s.q)q
from sk_by_dt s
where s.dt in(
select trunc(LAST_DAY(ADD_MONTHS(sysdate,-13+level))) dt from dual
connect by level < 13)
group by s.tid,s.dt
)s1
join krs_day k on s1.dt = K.DT and k.currid= 22
join tov t on t.id=s1.tid
group by t.brid,s1.dt
) aa
group by aa.brid
) s on s.brid=t.brid 
where D.tpk='N' and d.stk in ('P','G','H', 'Z')
and ds.stor=0 
and trunc(D.DT) between ADD_MONTHS(TRUNC(sysdate, 'mm'),-12) and LAST_DAY(ADD_MONTHS(trunc(sysdate),-1))
group by t.brid,s.summ
order by t.brid

результат приложен в виде файла.
как можно заметить строки с brid 4154,4165,4167 задвоились.
что забавно если перед последним group by добавить сроку
and t.brid in (4154,4165,4167)
то задвоения не происходит.
и, как заметил на последних тестах, двоятся строки не всегда одни и теже.
вероятно, я несколько путано изложил суть.
и прошу простить не понял как скриншоты прикладывать в удобоваримом виде.

К сообщению приложен файл. Размер - 27Kb
7 май 19, 15:58    [21880110]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
123йй
Member

Откуда:
Сообщений: 1637
Надфиль,

on     s.brid = t.brid
?
7 май 19, 16:19    [21880130]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
-2-
Member

Откуда:
Сообщений: 15330
Надфиль,

no_parallel
7 май 19, 16:22    [21880136]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
123йй,

и? что в этом потенциально криминального?
7 май 19, 16:23    [21880138]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
-2-
Надфиль,

no_parallel

хинт не помог (да и не должен, везде где мог я указал мануал и т.д в настройках сервера)
зато начала двоится строка с ид 4168...
ну в начале моих исследований она тоже двоилась, потом решила не двоится. сейчас опять двоится..
чертовщина какая-та.
общего только то, что двоится совсем чуть чуть. т.е. в одной строке sum большой, а в задвоенной маленький..
7 май 19, 16:34    [21880149]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2795
Надфиль,

у Вас жеж группировка по t.brid,s.summ


если убрать s.summ?

s.summ мож разные в "н-м разряде"

.....
stax
7 май 19, 16:58    [21880170]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
Stax
Надфиль,

у Вас жеж группировка по t.brid,s.summ


если убрать s.summ?

s.summ мож разные в "н-м разряде"

.....
stax

я проверял внутренний запрос из которого берется s.summ
там на каждое brid ровно одно значение..
если целиком убрать подзапрос, то задвоений нет.
но их нет и в подзапросе.
не, я могу, конечно, переписать запрос совсем по другому. мне просто тут интересно разобраться в причинах. ибо если глючит один запрос, не факт что не глючит полсотни других. просто я и коллеги их еще не видели. и от этой мысли волосы в неположенных местах начинают шевелится.
7 май 19, 17:03    [21880176]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
Stax
s.summ мож разные в "н-м разряде"

да и как я написал в первом сообщении.
если двоящиеся brid включить where, то двоится магически перестает.
Пойду приму витамины..
7 май 19, 17:06    [21880178]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2795
Надфиль
Stax
s.summ мож разные в "н-м разряде"

да и как я написал в первом сообщении.
если двоящиеся brid включить where, то двоится магически перестает.
Пойду приму витамины..


group by t.brid,trunc(s.summ,8) не двоит?


.....
stax
7 май 19, 17:21    [21880190]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
Stax
group by t.brid,trunc(s.summ,8) не двоит?

да это помогло.
но вы таки будете смеяться, но как?
оно что для внутреннего подзапроса. хранило несколько пар (ну или откудато брало) с разной точностью?
7 май 19, 17:33    [21880206]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54383
Надфиль,

выведи в строку длиной 38
увидишь разницу
7 май 19, 17:38    [21880212]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
andreymx
Надфиль,

выведи в строку длиной 38
увидишь разницу

я не должен ее увидеть. есть две пара brid summ почему мне втрое значение нужно возвращать "по разному"?
7 май 19, 17:42    [21880218]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18363
Надфиль
"по разному"?

Планчики поизучайте пристально.
Иногда случаются баговые трансформации.
7 май 19, 17:58    [21880231]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
j2k
Member

Откуда: Новосибирск
Сообщений: 550
Надфиль, Скобки ни на что не влияют? :)
7 май 19, 17:59    [21880233]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2795
Надфиль
Stax
group by t.brid,trunc(s.summ,8) не двоит?

но вы таки будете смеяться, но как?
оно что для внутреннего подзапроса. хранило несколько пар (ну или откудато брало) с разной точностью?


не буду смеятся, наоборот радуюсь что сразу вылезло, бувает выстрелит через месяцы

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

аккуратненько проверить что там считается по месяцам и найдете причину разных сумм

зы
1/3+1/3+1/3 <> 1

....
stax
7 май 19, 17:59    [21880234]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54383
помню в делфовой ветке не раз публиковали ссылку на статью про числовые типы данных
=>
Группировать по нецелым числам - то еще дело
7 май 19, 18:04    [21880243]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2795
Надфиль
andreymx
Надфиль,

выведи в строку длиной 38
увидишь разницу

я не должен ее увидеть. есть две пара brid summ почему мне втрое значение нужно возвращать "по разному"?

не второе значение, а оба

выведите больше знаков для summ_sk
col summ_sk format 000000000000.9999999999999999999999999999999999999999999999999 (39 девяток)
на крайняк dump(summ_sk)

.....
stax
7 май 19, 18:05    [21880246]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2795
andreymx
помню в делфовой ветке не раз публиковали ссылку на статью про числовые типы данных
=>
Группировать по нецелым числам - то еще дело


можно влоб trunc(s1.q*t.cena0/k.krsp,хх)

но імхо луче найти где и почему набегают хвостики

....
stax
7 май 19, 18:08    [21880252]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
все таки мне кажется это некий косяк от оракла.
например, когда я ограничивал выборку несколькими значениями brid, для которых наблюдались задвоения, все становилось нормально и без округления.
всем спасибо. надеюсь темы была не бесполезной...
и пойду приму усиленную дозу витаминов ;-)
7 май 19, 18:12    [21880261]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2795
Надфиль
все таки мне кажется это некий косяк от оракла.
например, когда я ограничивал выборку несколькими значениями brid, для которых наблюдались задвоения, все становилось нормально и без округления.
всем спасибо. надеюсь темы была не бесполезной...
и пойду приму усиленную дозу витаминов ;-)


возможно и косяк, посмотрите в плане куда и как оракля раскладывает предикаты,
мож и впрям непраильно "трансформировал/оптимизировал"

зы
надеюсь что хоть сами значения summ_sk правильные

....
stax
7 май 19, 18:22    [21880275]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
Stax
на крайняк dump(summ_sk)

вот как то так.

К сообщению приложен файл. Размер - 13Kb
7 май 19, 18:29    [21880280]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2795
Надфиль,

и еще, обратите внимание
к для плохих сумм очень маленькое, не знаю что оно значит на практике
но как бы намекает на непростые k.krsp для дублей, а не на баг оракля

....
stax
7 май 19, 18:29    [21880281]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
[quot Stax]
Надфиль
посмотрите в плане куда и как оракля раскладывает предикаты

план у нас такой.

К сообщению приложен файл. Размер - 49Kb
7 май 19, 18:37    [21880287]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
Надфиль
Member

Откуда:
Сообщений: 234
Stax
к для плохих сумм очень маленькое

сумма маленькая и к маленькое. и это правильно.
7 май 19, 18:38    [21880291]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение group by. Или лыжи не едут или я.....  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1178
Надфиль
Stax
на крайняк dump(summ_sk)

вот как то так.

на всякий случай спрошу.
вы же увидели разницу, правда?
7 май 19, 19:11    [21880312]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить