计算有计数的记录(列)> 2

时间:2012-09-18 20:21:50

标签: sql-server tsql

我有一个CustomerData表,其中包含以下属性: FirstName,LastName,DateofBirth,ID,位置

我正在尝试编写一个查询,该查询提取属于多个位置的用户的名字,姓氏,出生日期和IDNumber。

我尝试了以下代码,但是我收到有关需要group by子句的聚合的错误。

SELECT *
FROM CustomerData
WHERE Count(Location) > 2

非常感谢任何帮助

2 个答案:

答案 0 :(得分:3)

使用HAVING

SELECT FirstName, LastName, DateofBirth, ID, Count(Location)
FROM CustomerData
GROUP BY FirstName, LastName, DateofBirth, ID
HAVING Count(Location) > 2

HAVING基本上是WHERE,允许您使用聚合函数。

答案 1 :(得分:1)

您还可以使用子查询:

select c1.FirstName, c1.LastName, c1.DateofBirth, c1.ID, c2.CntLocation
from CustomerData c1
left join
(
    SELECT Count(Location) CntLocation, location
    FROM CustomerData
    group by location
) c2
    on c1.location = c2.location
WHERE CntLocation > 2