首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ms sql中优化有条件和无条件的聚合

在ms sql中优化有条件和无条件的聚合
EN

Stack Overflow用户
提问于 2010-10-05 19:50:11
回答 1查看 114关注 0票数 1

我想从一个列中得到一个总和,有条件和没有条件。我现在拥有的代码是

代码语言:javascript
复制
SELECT regular.id, regular.sum as regularsum, special.sum as specialsum FROM 
(SELECT Sum(stuff) as sum, id FROM table
 WHERE commonCondition = true
 GROUP BY id) as regular
INNER JOIN 
(SELECT Sum(stuff) as sum, id FROM table
 Where commonCondition = true AND specialCondition = true
 GROUP BY id) as special
ON regular.id = special.id

这是有效的,但似乎非常低效,更不用说丑陋了。该表相当大,因此欢迎进行一些优化。

我怎样才能以一种更好、更有效的方式写这篇文章呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-05 19:57:24

我认为你可以这样做:

代码语言:javascript
复制
 SELECT 
    Sum(stuff) as regularsum, 
    sum(case when specialcondition=true then stuff else 0 end) as specialsum,
    id FROM table
 WHERE commonCondition = true
 GROUP BY id

但是,您可能希望测试一下它是否更快。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3863336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档