現在已經困擾了這麼多小時。我看過這裏的其他幾篇文章,但找不到適合我需求的文章。有一個Access數據庫,我試圖刪除可能的重複,並獲得最大值的唯一列表。我有幾個字段需要的數據:訪問SQL不同的最大值
CustomerNumber EmpID SurveyResultID SurveyTotalScore SurveyQuestionCount
CustomerNumber有重複,但我只需要不同的值。如果有一個重複的CustomerNumber與不同的SurveyTotalScore,我需要MAX分數。
本質上,我想返回具有最高SurveyTotalScore的獨特CustomerNumber的列表,並且不重複。最好的方法是什麼?
更新: 這是我試過的一個查詢。它工作,如果我只是離開CustomerNumber本身,但我需要的EmpID和一些其他領域。
SELECT CustomerNumber, Max(SurveyTotalScore) AS MaxScore, SurveyResultID
FROM CSATDetail
GROUP BY CustomerNumber, SurveyResultID;
Example Data:
+----------------+----------+----------------+-------+
| CustomerNumber | MaxScore | SurveyResultID | EmpID |
+----------------+----------+----------------+-------+
| 259 | 40 | 461500 | 83 |
| 259 | 38 | 461501 | 83 |
| 695 | 40 | 461502 | 59 |
| 695 | 40 | 461504 | 59 |
| 734 | 40 | 461503 | 96 |
+----------------+----------+----------------+-------+
我想什麼都出來是這樣的。它選擇最大分數並且沒有重複,如果對於EmpID有多個結果
+----------------+----------+----------------+-------+
| CustomerNumber | MaxScore | SurveyResultID | EmpID |
+----------------+----------+----------------+-------+
| 259 | 40 | 461500 | 83 |
| 695 | 40 | 461502 | 59 |
| 734 | 40 | 461503 | 96 |
+----------------+----------+----------------+-------+
您必須確定哪些列使記錄重複。然後,您必須選擇應該選擇哪些值而不是其他值。您必須制定重複數據刪除的規則。 –
只有一列不能有重複值,即SurveyResultID。我可以得到Distinct CustomerNumber的列表,但如果有重複,我也需要最大的SurveyTotalScore。 – camaroracer016
這可以很容易地使用rank或row_number窗口函數完成,但它們不存在於access sql中。那麼你有可能使用不同的數據庫?甚至mssql? –