从SQL查询生成值列表,其总和小于一定量

时间:2015-03-05 18:33:09

标签: mysql

我有一个表“table_one”,其中包含两个字段。一个是文件系统上的文件夹路径(“directory_path”),例如“C:/ folderOne”,另一个是该文件夹中包含的文件总大小(“total_sz_bytes”),例如“4235” 。“

我正在尝试使用SQL查询生成值列表,从表的顶部开始,其总文件大小的SUM小于一定量,给予查询(例如,10000字节为例子)。

到目前为止,我有以下查询:

SELECT directory_path FROM table_one where 10000 >= 
(select sum(total_sz_bytes) from table_one);

但如果所有条目的总和小于10000的数字,则所有这些都会返回表中的所有条目。因此,如果表中有三个文件夹,“folder_one”,“folder_two”和“folder_three”,如果文件总大小小于10000,则查询将返回所有文件夹,但如果文件总大小则不会返回大于10000.如果folderOne + folderTwo为7000则无关紧要;如果它们全部放在一起大于10000,则查询不返回任何内容。

如何修改此查询以获取部分列表?

1 个答案:

答案 0 :(得分:0)

我认为您需要查看HAVING条款,如果我理解您的问题,以下内容应该有效:

SELECT    directory_path, 
          SUM(total_sz_bytes) as total_size 
FROM table_one
GROUP BY directory_path
HAVING total_size <= 10000