我有一组数据,如下所示
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我需要像下面这样的输出;
Group Perc Cancelled
10 20.33 1
12 36.69 2
13 40.34 2我得到的是这样的东西:
Group Perc Cancelled
10 20.33 5
12 36.69 5
13 40.34 5我不知道这叫什么,我脑子里有个东西叫它,比如CTE?,但我真的搞不懂。
这是我的资料来源;
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发布于 2013-07-11 10:19:44
在您的示例中,您不需要嵌套查询、任何递归等。
SELECT
Group,
SUM(Perc) AS total_perc,
SUM(cancelled) AS total_cancelled
FROM
tblName
WHERE
1=1
AND Group >= 10
GROUP BY
Group如果您确实有一些不同的数据,那么您可能想要使用类似于...
SUM(CASE WHEN cancelled > 0 THEN 1 ELSE 0 END) AS total_cancelledhttps://stackoverflow.com/questions/17583996
复制相似问题