我使用SQL Server 2008并配置一个表,我将数据分组到一列。出于某些原因,我必须使用GROUP BY
而不是DISTINCT
(这是更复杂查询的一部分)。查询结果(只返回一列)对我来说没问题。
问题是,我想使用此查询作为WHERE
子句中的子查询来过滤基于此子查询的数据。正如我所看到的,WHERE
子句在这个子查询中看到的不仅是在分组后在查询结果中显示的数据,还包括其余部分,这是我不喜欢的。
我的问题是,如何将我的group by
查询用作where子句,该子句只能在分组后看到结果?
答案 0 :(得分:0)
我猜你的问题是你的主查询为WHERE
子查询中的每个项返回多行。这是正确的行为。要限制主查询中的结果,您必须在主查询中使用DISTINCT
或GROUP BY
。
答案 1 :(得分:0)
您可以使用子查询从现有子查询中选择所需的列。然后将此新子查询作为where
子句的输入传递。