powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение group by. Или лыжи не едут или я.....
25 сообщений из 35, страница 1 из 2
Странное поведение group by. Или лыжи не едут или я.....
    #39810760
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
странности с групп бай.
Оракл 12.2 на линуксе. RAC
Выполняю запрос, данных там миллионы строк, с воспроизведением будут проблемы :-)
получаю результат, с дублями полей из групп бай.
Код: 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.
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)
то задвоения не происходит.
и, как заметил на последних тестах, двоятся строки не всегда одни и теже.
вероятно, я несколько путано изложил суть.
и прошу простить не понял как скриншоты прикладывать в удобоваримом виде.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810776
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

Код: plsql
1.
on     s.brid = t.brid

?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810781
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

no_parallel
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810782
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

и? что в этом потенциально криминального?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810789
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-Надфиль,

no_parallel
хинт не помог (да и не должен, везде где мог я указал мануал и т.д в настройках сервера)
зато начала двоится строка с ид 4168...
ну в начале моих исследований она тоже двоилась, потом решила не двоится. сейчас опять двоится..
чертовщина какая-та.
общего только то, что двоится совсем чуть чуть. т.е. в одной строке sum большой, а в задвоенной маленький..
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810796
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

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


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

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

.....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810801
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StaxНадфиль,

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


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

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

.....
stax
я проверял внутренний запрос из которого берется s.summ
там на каждое brid ровно одно значение..
если целиком убрать подзапрос, то задвоений нет.
но их нет и в подзапросе.
не, я могу, конечно, переписать запрос совсем по другому. мне просто тут интересно разобраться в причинах. ибо если глючит один запрос, не факт что не глючит полсотни других. просто я и коллеги их еще не видели. и от этой мысли волосы в неположенных местах начинают шевелится.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810803
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxs.summ мож разные в "н-м разряде"

да и как я написал в первом сообщении.
если двоящиеся brid включить where, то двоится магически перестает.
Пойду приму витамины..
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810808
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильStaxs.summ мож разные в "н-м разряде"

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

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


.....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810815
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxgroup by t.brid,trunc(s.summ,8) не двоит?

да это помогло.
но вы таки будете смеяться, но как?
оно что для внутреннего подзапроса. хранило несколько пар (ну или откудато брало) с разной точностью?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810818
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

выведи в строку длиной 38
увидишь разницу
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810820
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymxНадфиль,

выведи в строку длиной 38
увидишь разницу
я не должен ее увидеть. есть две пара brid summ почему мне втрое значение нужно возвращать "по разному"?
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810829
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль"по разному"?
Планчики поизучайте пристально.
Иногда случаются баговые трансформации.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810831
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810832
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильStaxgroup by t.brid,trunc(s.summ,8) не двоит?

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

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

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

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

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

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810837
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помню в делфовой ветке не раз публиковали ссылку на статью про числовые типы данных
=>
Группировать по нецелым числам - то еще дело
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810840
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильandreymxНадфиль,

выведи в строку длиной 38
увидишь разницу
я не должен ее увидеть. есть две пара brid summ почему мне втрое значение нужно возвращать "по разному"?
не второе значение, а оба

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

.....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810845
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxпомню в делфовой ветке не раз публиковали ссылку на статью про числовые типы данных
=>
Группировать по нецелым числам - то еще дело

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

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

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810849
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все таки мне кажется это некий косяк от оракла.
например, когда я ограничивал выборку несколькими значениями brid, для которых наблюдались задвоения, все становилось нормально и без округления.
всем спасибо. надеюсь темы была не бесполезной...
и пойду приму усиленную дозу витаминов ;-)
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810859
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфильвсе таки мне кажется это некий косяк от оракла.
например, когда я ограничивал выборку несколькими значениями brid, для которых наблюдались задвоения, все становилось нормально и без округления.
всем спасибо. надеюсь темы была не бесполезной...
и пойду приму усиленную дозу витаминов ;-)

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

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

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810861
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxна крайняк dump(summ_sk)

вот как то так.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810862
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надфиль,

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

....
stax
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810867
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Stax]Надфиль посмотрите в плане куда и как оракля раскладывает предикаты
план у нас такой.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810870
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Staxк для плохих сумм очень маленькое
сумма маленькая и к маленькое. и это правильно.
...
Рейтинг: 0 / 0
Странное поведение group by. Или лыжи не едут или я.....
    #39810883
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадфильStaxна крайняк dump(summ_sk)

вот как то так.
на всякий случай спрошу.
вы же увидели разницу, правда?
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Странное поведение group by. Или лыжи не едут или я.....
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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