|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, что в процедуре запрос вида: Код: plsql 1.
всегда вернёт значение?.. Т.е. если по условию записей нет, то vsum будет равно null, а не предыдущему значению?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2020, 22:07 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Нет. Это не count. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2020, 22:09 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Нет. Это не count. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2020, 23:27 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Нет. Это не count. То есть здесь обманывают или я не правильно понимаю выделенное? SUM() это агрегатная функция, которая вычисляет сумму значений для столбца. Если количество допустимых строк равно нулю, то SUM() возвращает значение NULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 00:22 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Взять и проверить - дело одной минуты. Поведение запроса в ISQL и PSQL абсолютно одинаково. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 00:29 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
alekcvpТо есть здесь обманывают или я не правильно понимаю выделенное? тест селект бла-бла. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 00:36 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
alekcvp Правильно ли я понимаю, что в процедуре запрос вида: Код: plsql 1.
всегда вернёт значение?.. Т.е. если по условию записей нет, то vsum будет равно null, а не предыдущему значению?.. Просто проверьте Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 02:38 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
alekcvp, было здесь как-то обсуждение, что "пустой" запрос НЕ обновляет переменную под into. Но лучше проверить. А ещё лучше перестраховаться, вручную обнулить переменную. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 10:48 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
KreatorXXI alekcvp, было здесь как-то обсуждение, что "пустой" запрос НЕ обновляет переменную под into. Но лучше проверить. А ещё лучше перестраховаться, вручную обнулить переменную. А запрос в данном случае будет как раз не "пустым", и установит её назад в NULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 10:51 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
YuRock, Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 10:54 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Dimbuch®, агрегатные функции без группировки всегда возвращают 1 запись, даже если по условию отбора там 0 записей. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 11:04 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Симонов Денис, Нда, погорячился насчёт row_count. Тогда: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 11:08 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
dennis-r YuRock, Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 11:23 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
dennis-r Симонов Денис, Нда, погорячился насчёт row_count. Тогда: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 11:26 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Симонов Денисагрегатные функции без группировки всегда возвращают 1 запись, даже если по условию отбора там 0 записей. Не все. И не всегда. Поведение разных функций разное. Поведение одних и тех же функций разное в зависимости от наличия или отсутствия в запросе group by. Ты в свой пример включил count(), что и заставило его вернуть одну запись. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 12:59 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ты не прав Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
возвращает 1. Ораклисты зная эту особенность агрегатов зачастую используют такой трюк для обхода ошибки no data found Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 13:14 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
16.10.2020 13:14, Симонов Денис пишет: > Ораклисты зная эту особенность агрегатов зачастую используют такой трюк для обхода ошибки no data found я по сей день не могу понять, нахрена Оракел генерит Exception NO_DATA_FOUND . Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 13:25 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Мимопроходящийнахрена Оракел генерит Exception NO_DATA_FOUND. Чтобы кнутом обучить своих пользователей оборачивать каждый select в цикл. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 13:32 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
16.10.2020 13:32, Dimitry Sibiryakov пишет: > Чтобы кнутом обучить своих пользователей оборачивать каждый select в цикл. в ставке Гитлера все малахольные... (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 13:34 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
dennis-r Симонов Денис, Нда, погорячился насчёт row_count. Тогда: Код: plsql 1.
Я уже обжёгся однажды, что если select не вернёт ни одной строки, то такой coalesce не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 14:34 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
alekcvp, повторяю второй раз, если в запросе только агрегатные функции без группировки и окон, то такой запрос всегда возвращает одну запись. Если ни одна запись не подходит под критерии отбора, то count вернёт 0, остальные агрегаты sum, min, max, avg, list вернут null. Про статистические функции и функции линейной регрессии не помню, но в доке вроде описано. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 14:45 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
alekcvp Я уже обжёгся однажды, что если select не вернёт ни одной строки, то такой coalesce не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 15:23 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Симонов Денис alekcvp, повторяю второй раз, если в запросе только агрегатные функции без группировки и окон, то такой запрос всегда возвращает одну запись. Если ни одна запись не подходит под критерии отбора, то count вернёт 0, остальные агрегаты sum, min, max, avg, list вернут null. Про статистические функции и функции линейной регрессии не помню, но в доке вроде описано. Я понял, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:18 |
|
Аггрегат по отсутствующим записям
|
|||
---|---|---|---|
#18+
Когда есть сомнения, лучше проинитить переменные перед запросом, код визуально становится более понятным, особенно когда через N месяцев требуется внести поправки. Бывает дописываю фантомные "else null", необязательные кляузы "as" и двоеточия в секции into просто для читаемости. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 19:32 |
|
|
start [/forum/topic.php?fid=40&fpage=11&tid=1560224]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 230ms |
total: | 400ms |
0 / 0 |