1

以下のような一連のデータがあります

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
4

1 に答える 1

3

あなたの例から、ネストされたクエリ、再帰などは必要ありません...

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_cancelled
于 2013-07-11T02:19:44.387 に答える