|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
всем привет у постгри есть такое понятие, как кэширование уже посчитанного? если запрос: Код: sql 1.
то sum() вычисляется 4 раза или 2? насколько помню, там нет возможности сохранить в переменную прямо в запросе "var := sum(x)" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 20:43 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78 всем привет у постгри есть такое понятие, как кэширование уже посчитанного? если запрос: Код: sql 1.
то sum() вычисляется 4 раза или 2? насколько помню, там нет возможности сохранить в переменную прямо в запросе "var := sum(x)" ну так перепишите в виде Код: plsql 1.
если не уверенны как оно внутри устроенно -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 21:02 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
так не удобно. Там много столбов всяких. Все переносить потом. Maxim Boguk если не уверенны как оно внутри устроенно секрет да? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 21:27 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78 так не удобно. Там много столбов всяких. Все переносить потом. Maxim Boguk если не уверенны как оно внутри устроенно секрет да? не секрет, но это надо в потроха кода закапываться для ответа на вопрос. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 23:47 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
Проверка обязательна, что Y != 0 , SUM(Y) != 0, если пишете X/Y, SUM(X)/SUM(Y). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 03:28 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78, Примерно одинаковое время выполнения на 2300к записях у Код: sql 1. 2. 3. 4.
Забей. upd. Я протупил, это на оракле. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 06:10 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
crutchmaster, эммм... А как это может быть одинаково с разным кол-вом столбов? в последней строке 6 столбов агрегируются... Как это может быть == одному?? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:12 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78, Считать sum намного проще, чем делать выборку. Настолько, что процесс подсчёта sum теряется на этом фоне. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:15 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
crutchmaster, ну тогда стартовый пост теряет смысл заморочки можно было сразу это написать ) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:01 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78 crutchmaster, ну тогда стартовый пост теряет смысл заморочки можно было сразу это написать ) на самом деле не теряет... это sum() агрегат дешевый... а бывают очень дорогие агрегатные функции и там это вопрос вполне себе обоснован... Вот например медиана ( https://wiki.postgresql.org/wiki/Aggregate_Median ) нифига не дешевая... -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:10 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
цифра вычисленного sum(x) по-любому лежит в ячейке памяти и даже во время отправки объекта с результатами наружу, там будет указатель на эту ячейку точно также можно было бы и взять из этой ячейки вычисленную цифру для соседнего sum(x)... тут нет ничего сложного, элементарная и логичная операция ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 16:59 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
Maxim Boguk нифига не дешевая... ну значит вот её можно воткнуть в запрос crutchmaster ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 17:02 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
Если я правильно понял: Изменчивость=постоянная значит результат вычисляется один раз для каждого входного значения Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 17:40 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
господа, а почему Код: sql 1.
даёт в итоге NULL? без coalesce() никак чтоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 20:26 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78 господа, а почему Код: sql 1.
даёт в итоге NULL? без coalesce() никак чтоли? потому что "что угодно" "любой оператор" NULL - есть NULL по SQL стандарту NULL это не НОЛЬ. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 21:10 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
да ясен-красен, но это же не операция умножения, и не конкатенация мог бы и sum(x) оставить ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:04 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78 да ясен-красен, но это же не операция умножения, и не конкатенация мог бы и sum(x) оставить Есть ANSI SQL стандарт и все нормальные базы его стараются придерживаться. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 13:44 |
|
sum(X) / sum(Y)
|
|||
---|---|---|---|
#18+
tip78 да ясен-красен, но это же не операция умножения, и не конкатенация А в чём разница с умножением или конкатенацией? К 100 прибавляем неизвестность, почему должно получиться вообще хоть что-то, кроме как другая неизвестность? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 14:25 |
|
|
start [/forum/topic.php?fid=53&fpage=19&tid=1994332]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 160ms |
0 / 0 |