gpt4 book ai didi

SQL 组按自定义类别(数量)

转载 作者:行者123 更新时间:2023-12-01 08:50:57 28 4
gpt4 key购买 nike

我在编写一个查询时遇到了一些问题。

我有一个由文件及其大小(以字节为单位)组成的表。它看起来像这样:

FileUrl | FileSize
------------------
xyz.docx | 2794496
qwe.ppt | 655360
asd.pdf | 1388782
...
...

我想要的是根据我将定义的不同大小组找到文件数、总文件数的百分比和总文件大小的百分比。所以它应该是这样的:

Size Category | Number of Files | % of Total File Count | ½ of Total File Size
------------------------------------------------------------------------------
0-1 MB | 235 | 80% | 20%
1-10 MB | 57 | 20% | 80%
10-50 MB
...
...

创建此类组然后找到这些百分比的最佳方法是什么?我想不出解决方案,而且我的在线搜索也没有任何帮助。

提前谢谢你

最佳答案

这是一种使用 apply 和窗口函数的方法:

select v.sizecategory, count(*) as numfiles,
(count(*) / sum(1.0 * count(*)) over () as ratio_files,
(sum(filesize) / sum(sum(filesize) * 1.0)) over () as ratio_sizes
from t outer apply
(values (case when t.filesize < 1000000 then '0-1 MByte'
when t.filesize < 10000000 then '1-10 MByte'
when t.filesize < 50000000 then '10-50 MByte'
. . .
end)
) v(sizecategory)
group by v.sizecategory
order by min(t.filesize);

关于SQL 组按自定义类别(数量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42673144/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com