我正在製作一個程序,我需要對數據庫進行查詢,詢問在給定列中出現頻率最高的字符串。在這個例子中,它的「stringONE」。如何做一個查詢來計算哪一個字符串出現在某一列最多?
----------------------------
| ID | Column (string) |
----------------------------
| 1 | stringONE |
----------------------------
| 2 | stringTWO |
----------------------------
| 3 | stringONE |
----------------------------
| 4 | stringONE |
----------------------------
現在我需要出現的大部分的字符串的名稱,並把它變成一個可變的字符串,例如:
string most_appeared_string = sql.ExecuteScalar();
此外,會發生什麼,如果沒有出現串最多2個或更多個出現相同次數的字符串,如下所示:
----------------------------
| ID | Column (string) |
----------------------------
| 1 | stringONE |
----------------------------
| 2 | stringTWO |
----------------------------
| 3 | stringTWO |
----------------------------
| 4 | stringONE |
----------------------------
請提前致謝。
@KeithS
你有查詢的SQL服務器版本,因爲我想在那裏當它得到了一些錯誤。以下是我想要精確完成的一個表格示例。
------------------------------------------------
| ID | column1 (string) | author (string) |
------------------------------------------------
| 1 | string-ONE | John |
------------------------------------------------
| 2 | string-TWO | John |
------------------------------------------------
| 3 | string-ONE | Martin |
------------------------------------------------
| 4 | string-ONE | John |
------------------------------------------------
SELECT TOP (1) column1, COUNT(*) FROM table WHERE author='John' ORDER BY ID
它應該返回「string-ONE」,因爲它看起來是作者John的最多(2)次。當試圖在MS-SQL Management Studio中的查詢,雖然,這是我得到的錯誤:
Column 'table.column1' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
沒關係編輯。謝謝。
聽起來像作業... – KeithS 2012-04-11 14:51:38
它可能是。我是一個noob,在這個學期學習數據庫,我正在家裏做一些個人編程項目,以便學習更多。 – Alternatex 2012-04-11 15:14:56