首页
学习
活动
专区
圈层
工具
发布

T-SQL递归
EN

Stack Overflow用户
提问于 2013-07-11 10:15:48
回答 1查看 55关注 0票数 1

我有一组数据,如下所示

代码语言:javascript
复制
Name  Time   Perc   Group  Mode  Control  Cancelled
A     10:52  10.10   10     0      1         0
B     09:00  10.23   10     1      1         1
C     12:02  12.01   12     0      1         1
D     10:45  12.12   12     1      7         1
E     12:54  12.56   12     1      3         0
F     01:01  13.90   13     0      11        1
G     02:45  13.23   13     1      12        1
H     09:10  13.21   13     1      1         0

我需要像下面这样的输出;

代码语言:javascript
复制
Group  Perc   Cancelled
 10    20.33     1
 12    36.69     2
 13    40.34     2

我得到的是这样的东西:

代码语言:javascript
复制
Group  Perc   Cancelled
 10    20.33     5
 12    36.69     5
 13    40.34     5

我不知道这叫什么,我脑子里有个东西叫它,比如CTE?,但我真的搞不懂。

这是我的资料来源;

代码语言:javascript
复制
 SELECT Group, SUM(Perc), Cancelled FROM
 (SELECT Group, Perc, (SELECT COUNT(*) FROM tblName WHERE Cancelled=1) AS Cancelled    FROM tblName WHERE 1=1 AND Group>=10)dt
 GROUP BY Group, Cancelled
EN

回答 1

Stack Overflow用户

发布于 2013-07-11 10:19:44

在您的示例中,您不需要嵌套查询、任何递归等。

代码语言:javascript
复制
SELECT
  Group,
  SUM(Perc)        AS total_perc,
  SUM(cancelled)   AS total_cancelled
FROM
  tblName
WHERE
  1=1
  AND Group >= 10
GROUP BY
  Group

如果您确实有一些不同的数据,那么您可能想要使用类似于...

代码语言:javascript
复制
SUM(CASE WHEN cancelled > 0 THEN 1 ELSE 0 END)   AS total_cancelled
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17583996

复制
相关文章

相似问题

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