2012-08-04 87 views
0

第一個圖像是我的查詢輸出。現在我想分組這個主題,以便它變得像第二個圖像。可能嗎?謝謝您的幫助。T SQL關於分組的查詢

select Subject, Grade, case when Grade >= 50 Then '1' else '0' end as Pass, case when Grade < 50 Then '1' else '0' end as Fail from Grade_report

OUTPUT:

enter image description here

我要的是:

enter image description here

回答

0

你的規格是不是非常精確;你對合並記錄的年級有什麼期望,應該只寫1或0還是合計通過和失敗的總和?

下將產生的輸出,它需要的傳球MAX的檔次和SUM /失敗信息:

WITH GradePassFail AS (
    SELECT 
     Subject, 
     Grade, 
     CASE WHEN Grade >= 50 THEN 1 ELSE 0 END AS Pass, 
     CASE WHEN Grade < 50 THEN 1 ELSE 0 END AS Fail 
    FROM Grade_report 
) 
SELECT Subject, MAX(Grade) AS Grade, SUM(Pass) AS Pass, SUM(Fail) AS Fail 
FROM GradePassFail 
GROUP BY Subject 
+0

是有可能只有一個select語句生成相同的輸出? – kevin 2012-08-05 04:22:47

+0

我不確定你的意思,它是一個聲明...公用表表達式定義了一個視圖然後使用,但最終查詢優化器將它看作一個查詢。你當然可以通過嵌套查詢替換CT​​E,這將是等價的。 – Lucero 2012-08-05 11:14:33