|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
НеофитSQL, max по rowid для блока with построенного на dual? Месье знает толк в извращениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:00 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
На этом примере куда лучше видно, что адекватно формулировать свою задачу у вас не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:01 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
Stax НеофитSQL Но... не работает. Нельзя rowid использовать ни с distinct, ни с group by. по одному наймолодшему в отделе Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
..... stax Вы, однако, извращенец. После моего комментария я увидел что загвоздка с rowid была из-за inline views, я вначале неправильно прочитал сообщение об ошибке, и написал об этом. 22243959 А потом кто-то увидел max(rowid), недочитал строку, и началось... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:03 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
K790 посыпаю голову пеплом, понял. тогда вопрос как построена архитектура? Пример был игрушечный, т.к. ответ на него отвечал на мой вопрос - как получить "главную" строку из каждой группы без дополнительных колонок. Главную - как определяет мой критерий сортировки, и группировка по нескольким колонкам. В игрушечном примере группировка по двум колонкам, а сортировка - по "day". Я подозревал что ответ который дает колонку rowid - оптимальный, потому что доступ по rowid бесплатный, и потому что rowid существует, исходя из постановки задачи (выдать строки целиком по критерию). Но у меня не получалось его написать, т.к. я забыл что у CTE нет rowid. Потом, с подсказкой от SY и других, все получилось. 22243959 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:11 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
env На этом примере куда лучше видно, что адекватно формулировать свою задачу у вас не получается. Некоторым танцорам штаны мешают ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:13 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
НеофитSQL Вы разберетесь сами на этом примере, почему здесь МАХ не дает максимальную цену, и почему его можно заменить на MIN или AVG? авторЦены не более одного раза в день обновляются обновите цену два раза в день (без времени), и будет Вам max ps если order by ... не уникально строку с помощью keep не выбрать ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 18:15 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
НеофитSQL Потом, с подсказкой от SY и других, все получилось. 22243959 ??? Моя "подсказка" была с MAX/MIN ROWID ничего не выйдет. Stax показал "дедовский" метод которым мы пользовались в дремучие времена когда Oracle не поддерживал аналитические ф-ции. А моя основная "подсказка" была используй SCD2 - цена меняется мах 2 раза в день а выбирается куда больше раз. Так-что потери на изменение цены через SCD2 с лихвой окупятся при выборке. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 19:08 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
> обновите цену два раза в день (без времени), Тогда условия задачи требуют корректировки, т.к. "последняя цена" не определена. Если "любая из последних", то MAX подойдет, и MIN подойдет, а вот с AVG будут проблемы. Эх, надо было AVG(rowid) написать. Жаль, что это не число :) Для параноиков как я, в таблицу можно добавить уникальный constraint по (prod,clr,day). A в квери - поставить "бомбу" которая ее сломает если все-таки появились дупликаты. Чтоб неповадно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 19:11 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
SY НеофитSQL Потом, с подсказкой от SY и других, все получилось. 22243959 ??? Моя "подсказка" была с MAX/MIN ROWID ничего не выйдет. Stax показал "дедовский" метод которым мы пользовались в дремучие времена когда Oracle не поддерживал аналитические ф-ции. А моя основная "подсказка" была используй SCD2 - цена меняется мах 2 раза в день а выбирается куда больше раз. Так-что потери на изменение цены через SCD2 с лихвой окупятся при выборке. SY. Я говорил про 22243953 . Там пример был чужой и сломанный, но теперь у меня свой и как env уже увидел, правильно работающий. Про SCD2 почитаю на будущее. Сейчас не применю, т.к. строил одноразовый отчет по архивным данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 19:16 |
|
Группировка с нахождением новейших строк.
|
|||
---|---|---|---|
#18+
НеофитSQL Некоторым танцорам штаны мешают Купите штаны пошире (официальную поддержку). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2020, 09:03 |
|
|
start [/forum/topic.php?fid=52&msg=40025725&tid=1880630]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
133ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 233ms |
0 / 0 |