2011-01-11 122 views
2

我有MSSQL TABEL這樣>如何爲此編寫sql select查詢?

ID   Code    Rating 
1   10     4 
2   10     5 
3   10     4 
4   11     2 
5   11     3 

SQL查詢的邏輯,我想......

我想,當我使用代碼10,則輸出將是4搜索記錄,因爲4等級會給予大部分時間碼10 ....

和另一邏輯,如果我搜索碼11,則放出來將是3,因爲3將是最近期的11碼速度...

如何使用ASP編寫即時消息的sql查詢。 NET(VB)

+0

這與ASP.NET無關,它純粹是一個數據庫事物。 – tdammers 2011-01-11 10:34:24

+0

如果您有另一個代碼10的評分爲5,即代碼10沒有單一模式值,該怎麼辦?您需要SQL還是使用特定ORM的代碼,例如Linq到SQL或EF? – Rup 2011-01-11 10:35:08

回答

5

你想要做的第一件事是過濾器:

SELECT * FROM mytable WHERE Code = 10 

您所感興趣的 '等級' 字段:

SELECT Rating FROM mytable WHERE Code = 10 

現在你要計算的條目評分可以使用GROUP BYCOUNT()函數的組合來實現:

SELECT COUNT(*), Rating FROM mytable WHERE Code = 10 GROUP BY Rating 

現在剩下的就是按照計數,降序排序,並且只選擇第一行:

SELECT TOP 1 Rating FROM mytable WHERE Code = 10 GROUP BY Rating ORDER BY COUNT(*) DESC