2013-08-18 32 views
2

我有一個情況我都數不過來同類型的字符串數表的一列中,如算上不同的值。列將具有值,例如A =不存在P =本如何在表中的一列在SQL中使用Java

 
A A A P P P P P P P A 

所以我需要計數相同類型的所有字符串,如P即當前這意味着查詢應該給計數結果7. 可以採取什麼偶像查詢這個?

回答

3

我覺得這是我可以在SQL Select count(*) from table where attendence='P'的角度來考慮的最簡單的查詢

更新: 確保使用準備好的語句的參數格式在Java代碼中,以防止SQL注入。

3
SELECT attendance, COUNT(*) 
FROM Roster 
GROUP BY attendance; 

會給你列中每個值的計數。因此,對於具有4的A值和7個P值的表,查詢將返回

attendance | COUNT(*) 
___________|_________ 
      | 
A   | 4 
P   | 7 

旁白:由於您的表中的出勤列有重複的值,你應該考慮拉動所有可能的值參加他們自己的「枚舉」類。 SQL不提供枚舉,但有幾種方法可以實現類似的效果。

一種方法是創建一個查找表,其中包含一個ID列(可以是自動遞增),並且要進行考勤的值。然後,在你的名單表中,使用一個外鍵來引用正確值的ID。

爲了節省自己的時間在未來,你可以創建一個使用考勤值,而不是ID的視圖。

你可以,如果你有興趣在提高你的數據庫的設計上Database Normalization讀了。

相關問題