2012-12-21 88 views
0

以下代碼我沒有得到總百分比,但是每個非「U」值的百分比。來自不同行的總百分比

如何更改代碼以獲得總百分比?

SELECT grade, (COUNT(grade)* 100/(SELECT COUNT(*) FROM studied)) AS Score 
FROM studied 
WHERE grade !='U' 
GROUP BY grade 
+1

u能證明例如 –

+0

不' grade'包含任何NULL值? – Bridge

+0

不,它不包含任何NULL值。 例如:第一行顯示A級得分50,第二行顯示B級得分25,U是25但未顯示。我想添加A + B,所以它顯示75 – Swiftly

回答

0

下面的代碼將返回值的列表:得分

等級會顯示所有現有的等級,但美國的分數值會告訴你相應的等級(包括 U)的總百分比。如果你想有分數作爲等級排除的U百分比以下SQL應該工作

SELECT grade, (COUNT(grade) * 100/(SELECT COUNT(*) FROM studied WHERE grade !='U')) AS Score 
FROM studied 
WHERE grade !='U' 
GROUP BY grade 

下圖顯示的測試數據截圖和查詢結果

enter image description here

編輯

從你上次的評論看起來像這樣SQL s HOULD做的工作:

SELECT (COUNT(grade) * 100/(SELECT COUNT(*) FROM student)) AS Score 
FROM Student 
WHERE grade !='U' 

它將返回你不包括U.從截圖中使用的數據集所有等級的總比例將是92(即92%)

+0

我嘗試過,但它不返回任何內容,只是空白。 – Swiftly

+0

它在計算總百分比時​​忽略了U,我想返回百分比作爲總數而不是不同行。例如2 A,1B和1 U返回75的分數值。Atm我得到A 50,B 25. – Swiftly

+0

它的工作,非常感謝您的幫助:) – Swiftly