【问题标题】:MySql SUM function combined with where conditionalMySql SUM函数结合where条件
【发布时间】:2014-12-05 14:46:54
【问题描述】:

这是我必须整理的一个疯狂查询的第一部分,所以很快就会有另一个问题!

我有这张桌子

我要做的是获取CONTEXT 的列表,其中SUM(FILE_SIZE) 大于5 gigs。

除了放入 where 子句之外,我已经弄清楚了查询的每个部分。

SELECT CONTEXT,SUM(FILE_SIZE) AS size FROM CONTENT_RESOURCE GROUP BY CONTEXT.

我遇到的麻烦是这样的:

WHERE SUM(FILE_SIZE) > 5000000000

这将为每个唯一的 CONTEXT 完成。

所以如果有这样的数据:

1 | A
4 | A
2 | C
6 | C
8 | B

结果会是这样的:

5 | A
8 | C
8 | B

所以我需要为所有不同的CONTEXTs 获取SUM(FILE_SIZE),然后只返回大于 5000000000 的那些

【问题讨论】:

    标签: mysql sql select group-by


    【解决方案1】:

    having 子句允许您对group by 子句创建的组(和聚合结果)应用条件:

    SELECT   context, SUM(file_size) AS size 
    FROM     content_resource
    GROUP BY context
    HAVING   SUM(file_size) > 5000000000
    

    【讨论】:

    • 谢谢!我还没有运行查询,因为它需要 10 到 20 分钟才能完成,但是我在一个较小的数据集上对其进行了测试,它看起来很有效。期待今天还有更多 SQL 问题!
    猜你喜欢
    • 1970-01-01
    • 2019-06-21
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2013-03-16
    • 2020-03-16
    • 1970-01-01
    相关资源
    最近更新 更多