和除功能

Jef*_*eff 0 sql-server sql-server-2008

我试图找出使用除法和函数时哪种格式正确:

哪一个是正确的?

sum(filesize/1024)
Run Code Online (Sandbox Code Playgroud)

要么

sum(filesize)/1024
Run Code Online (Sandbox Code Playgroud)

filesize列是以千字节为单位的度量,我将其转换为兆字节.

And*_*mar 7

他们的意思不同. sum(filesize/1024)将文件大小减小到兆字节,然后总计兆字节.对于每个文件,这会"忘记"超过兆字节边界的大小,因此它会低估总文件大小.

sum(filesize)/1024 将以兆字节为单位报告正确的大小 - 向下舍入.

  • +1:打败了我.此外,仅在总和之后执行除法而不是在每个元素上执行除法有一点性能优势. (2认同)