| Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
| Все форумы / Oracle | ![]() |
||
|
Irhen Member Откуда: Сообщений: 183 |
Простите за нубство... Имеется update таблицы агрегатными значениями (max, min, avg) по условию сравнения с ними. Как оптимально и красиво сделать такой апдейт? UPDATE scott.emp SET sal = (SELECT AVG (sal) FROM scott.emp) WHERE sal< (SELECT AVG (sal) FROM scott.emp) |
| 4 дек 12, 12:40 [13574427] Ответить | Цитировать Сообщить модератору | |
|
xtender Member Откуда: Мск Сообщений: 2173 |
UPDATE scott.emp SET sal = greatest(sal,(SELECT AVG (sal) FROM scott.emp))хотя меня что-то тут интуитивно смущает, ну уж как есть |
| 4 дек 12, 12:45 [13574491] Ответить | Цитировать Сообщить модератору | |
|
В.И.Ленин
Guest |
Да будет жив социализм! Все должны быть равны. Ура, ура, ураааа! |
| 4 дек 12, 12:47 [13574506] Ответить | Цитировать Сообщить модератору | |
|
ILoveCoffee Member Откуда: Astana Сообщений: 832 |
xtender, Ну, раньше была хоть where кляуза. |
| 4 дек 12, 12:48 [13574514] Ответить | Цитировать Сообщить модератору | |
|
xtender Member Откуда: Мск Сообщений: 2173 |
В.И.Ленин,
угу, все равны, а некоторые "равнее" |
||
| 4 дек 12, 12:49 [13574524] Ответить | Цитировать Сообщить модератору | |||
|
xtender Member Откуда: Мск Сообщений: 2173 |
ILoveCoffee, це sqlgolf |
| 4 дек 12, 12:51 [13574537] Ответить | Цитировать Сообщить модератору | |
|
Irhen Member Откуда: Сообщений: 183 |
xtender, Спасибо. Ну пример, конечно смешной. Но что делать :) |
| 4 дек 12, 13:05 [13574656] Ответить | Цитировать Сообщить модератору | |
|
xtender Member Откуда: Мск Сообщений: 2173 |
Irhen, погодите-погодите... это не всеееее... еще write consistancy ща приплетем и получится что-то еще более монстрообразное типа:UPDATE emp e1 SET sal = greatest(sal,(SELECT AVG (sal) FROM emp e2 where e1.sal*0 = e1.sal*0)) where e1.sal is not null; |
| 4 дек 12, 13:13 [13574719] Ответить | Цитировать Сообщить модератору | |
|
xtender Member Откуда: Мск Сообщений: 2173 |
поправка
|
||
| 4 дек 12, 13:14 [13574727] Ответить | Цитировать Сообщить модератору | |||
|
Павел Воронцов Member Откуда: Новосибирск Сообщений: 2011 Блог |
|
||
| 4 дек 12, 13:15 [13574736] Ответить | Цитировать Сообщить модератору | |||
|
MasterZiv Member Откуда: Питер Сообщений: 21065 |
А чем тебе так не красиво ? (или не оптимально?) |
||
| 4 дек 12, 13:39 [13574900] Ответить | Цитировать Сообщить модератору | |||
|
Добрый Э - Эх
Guest |
MasterZiv, У ораклистов запрос считается некошерным, если он более одного раза лезет в каждую из таблиц и при этом ещё делает совершенно одну и ту же работу. А в исходном варианте автора видно, что для получения условий фильтрации и расчета нового значения выполняется абсолютно идентичный запрос. Вполне логичное желание - избавиться от такого излишества. |
| 4 дек 12, 13:45 [13574959] Ответить | Цитировать Сообщить модератору | |
|
xtender Member Откуда: Мск Сообщений: 2173 |
MasterZiv, Хуже всего что очередной шаг на пути к уравниловке может либо привести к исходному, либо оказаться полумерой, несмотря на очевидное классовое неравенство ... |
| 4 дек 12, 13:51 [13575018] Ответить | Цитировать Сообщить модератору | |
| Все форумы / Oracle | ![]() |
|