2

いくつかの検索結果を含むテーブルがあります。各結果は異なるメトリックを使用して検出される可能性があるため、検索結果が繰り返される可能性があります。次に、このテーブルをクエリして、ID列を使用して個別の結果のみを選択します。要約すると、ID列のあるテーブルがありますが、IDが繰り返される可能性があり、MS Access SQLで各IDを1つだけ選択したいのですが、これを行うにはどうすればよいですか?

いくつかの提案を試した後、もう少し情報があります。MinsとMaxesは、操作している列を表示できないため、機能しません。You tried to execute a query that does not include the specified expression...すべてのデータが並べ替えられたようなエラーが発生します 。次のようになります。

ID|Description|searchScore
97     test        1  
97     test        .95
120    ball        .94
97     test        .8
120    ball        .7

問題は、行が異なる検索条件を使用してテーブルに配置されたため、スコアが異なる行を複製したことです。私がやりたいのはID、降順でソートされたそれぞれの1つだけを選択することですsearchScore。何か案は?

4

2 に答える 2

2
SELECT DISTINCT ID
FROM Search_Table;

質問に対する最後の更新に基づいて、次のクエリが適切と思われます。

SELECT ID, [Description], Max(searchScore)
FROM Search_Table
GROUP BY ID, [Description];

しかし、それは昨日のゴードンの提案とほぼ同じなので、これがあなたの望むものかどうかはわかりません.

于 2013-01-15T22:42:40.863 に答える
1

検索条件の 1 つを取得する方法は次のとおりです。

select id, min(search_criteria)
from t
group by id

これは常に最初のものをアルファベット順に返します。を使用して最後のものを簡単に取得することもできますmax()

以下を使用することもできます。

select id, first(search_criteria)
from t
group by id
于 2013-01-15T22:52:52.263 に答える