2

我有一张包含一些搜索结果的表格。搜索结果可能会重复,因为可以使用不同的度量找到每个结果。然后我想查询这个表,只选择使用 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。有任何想法吗?

4

2 回答 2

2
SELECT DISTINCT ID
FROM Search_Table;

根据您问题的最后更新,以下查询似乎是合适的。

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

但是,这与 Gordon 昨天的建议几乎相同,所以我不确定这是否是您想要的。

于 2013-01-15T22:42:40.863 回答
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 回答