Функция Sum с делением - PullRequest
       1

Функция Sum с делением

0 голосов
/ 17 февраля 2011

Я пытаюсь выяснить, какой формат является правильным при использовании функции суммы с делением:

Какой из них правильный?

sum(filesize/1024)

или

sum(filesize)/1024

Столбец размера файла - это измерение в килобайтах, которое я конвертирую в мегабайты.

Ответы [ 4 ]

7 голосов
/ 17 февраля 2011

Они имеют в виду разные вещи. sum(filesize/1024) уменьшает размер файла до мегабайт, а затем суммирует мегабайты. Для каждого файла это «забывает» размер, превышающий границу мегабайта, поэтому он будет занижать общий размер файла.

sum(filesize)/1024 сообщит правильный размер в мегабайтах - округлено в меньшую сторону.

1 голос
/ 17 февраля 2011

Лично я бы выбрал вариант № 2 (при условии, что число не настолько велико, у вас возникнут проблемы переполнения).Таким образом, числа остаются максимально точными, пока они не будут переданы пользователю.

0 голосов
/ 17 февраля 2011

По логике оба должны давать одинаковый результат. Однако сумма (размер файла) / 1024 , вероятно, будет быстрее. Если вы выберете другой вариант, вы будете выполнять операцию деления для каждого результата, вместо того, чтобы делать это один раз.

0 голосов
/ 17 февраля 2011

Я почти уверен, что первый из них правильный - sum (filesize / 1024), но вы должны убедиться, что размер файла никогда не равен 0, иначе ваш запрос выдаст ошибку.

Используйте для этого декодирование на oracle или на сервере SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...