1

我使用 SQL Server 2008 并处理一个表,我将数据分组在一列上。由于某些原因,我必须使用GROUP BY代替DISTINCT(它是更复杂查询的一部分)。查询结果(只返回一列)对我来说很好。

问题是,我想将此查询用作子查询中的子查询,WHERE以根据此子查询过滤数据。如我所见,WHERE子查询在此子查询中不仅可以看到分组后查询结果中显示的数据,还可以看到其余数据,这是我不喜欢的。

我的问题是,如何将我的group by查询用作 where 子句中的子查询,在分组后只能看到结果?

4

2 回答 2

0

我猜您的问题是您的主查询为WHERE子查询中的每个项目返回多行。这是正确的行为。为了限制您的主查询中的结果,您必须使用DISTINCTGROUP BY在主查询中。

于 2013-02-12T09:25:39.503 回答
0

您可以使用子查询从现有子查询中选择所需的列。然后将这个新的子查询作为输入传递给where子句。

于 2013-02-12T10:58:53.410 回答