Sql 如何从当前子查询中对列进行分组?

Sql 如何从当前子查询中对列进行分组?,sql,sql-server-2008,Sql,Sql Server 2008,我有一个查询,结果如下: SELECT DISTINCT dbo.raTMS_TruckLoadingArm.ProductFK, dbo.raTMS_TruckLoadingBay.BayName FROM dbo.raTMS_TruckLoadingArm INNER JOIN dbo.raTMS_TruckLoadingBay ON dbo.raTMS_TruckLoadingArm.TruckLoadingBayFK = dbo.raTMS_TruckLoadingBay.PriKey

我有一个查询,结果如下:

SELECT DISTINCT dbo.raTMS_TruckLoadingArm.ProductFK,

dbo.raTMS_TruckLoadingBay.BayName
FROM
dbo.raTMS_TruckLoadingArm
INNER JOIN dbo.raTMS_TruckLoadingBay ON dbo.raTMS_TruckLoadingArm.TruckLoadingBayFK = dbo.raTMS_TruckLoadingBay.PriKey
WHERE
dbo.raTMS_TruckLoadingArm.ProductFK IN (8, 9, 11, 10, 7)
ORDER BY BayName
结果:

我想从上面的查询中选择并按“BayName”分组,其中“BayName”是haveRow count=4,因此结果应该是“Bay1”


提前感谢您!

如果我理解正确,您可以通过一个包含子句的
的简单聚合来实现这一点:

SELECT b.BayName
FROM dbo.raTMS_TruckLoadingArm a INNER JOIN
     dbo.raTMS_TruckLoadingBay b
     ON a.TruckLoadingBayFK = b.PriKey
WHERE a.ProductFK IN (8, 9, 11, 10, 7)
GROUP BY b.BayName
HAVING COUNT(DISTINCT a.ProductFK) = 4;
请注意,使用表别名使查询更易于编写和读取