【问题标题】:How should my query look like?我的查询应该是什么样子?
【发布时间】:2013-01-27 13:24:53
【问题描述】:

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

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

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

【问题讨论】:

  • 在问题中发布 SQL 代码始终是一种好习惯。在这种情况下,您需要的是子查询(分组查询的括号,然后在另一个查询中使用结果)

标签: sql sql-server sql-server-2008 tsql group-by


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-12-09
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多