访问在某列上选择distinct

时间:2013-01-15 22:38:49

标签: sql vba ms-access ms-access-2007

我有一张包含一些搜索结果的表格。可以重复搜索结果,因为可以使用不同的度量来找到每个结果。我想查询此表,只使用ID列选择不同的结果。总结一下,我有一个带有ID列的表,但ID可能会重复,我想只选择一个带有MS Access SQL的ID,我应该怎么做呢?

好的我在尝试了几个建议之后还有一些信息。 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降序排序的每个searchScore中的一个。有任何想法吗?

2 个答案:

答案 0 :(得分:2)

SELECT DISTINCT ID
FROM Search_Table;

根据您问题的上次更新,以下查询似乎合适。

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

然而这与昨天戈登的建议几乎相同,所以我不确定这是否是你想要的。

答案 1 :(得分:1)

以下是一种可以获得搜索条件的方法:

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

这将始终按字母顺序返回第一个。您也可以使用max()轻松获取最后一个。

你也可以使用:

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