これ以上何時間もつまずきました。私はここでいくつかの他の記事を見てきましたが、私のニーズに合ったものは見つけられません。可能な重複を削除しようとしているAccessデータベースを持っていて、一意のリストの最大値も取得してください。いくつかのフィールドに必要なデータがあります。SQL Distinctの最大値にアクセス
CustomerNumber EmpID SurveyResultID SurveyTotalScore SurveyQuestionCount
CustomerNumberに重複がありますが、別個の値が必要です。異なるSurveyTotalScoreを持つCustomerNumberが重複している場合、MAXスコアが必要です。
本質的に、最高のSurveyTotalScoreを持つ重複しないCustomerNumberのリストを返したいと思います。何が最善の方法ですか?
更新: ここでは、私が試した1つのクエリです。 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 |
+----------------+----------+----------------+-------+
何私が出ているしたいことはこれです。それはmaxscoreを選択し、あなたが一歩離れているの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? –