2

我有一个具有以下属性的 CustomerData 表:FirstName、LastName、DateofBirth、ID、Location

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

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

SELECT *
FROM CustomerData
WHERE Count(Location) > 2

任何帮助将不胜感激

4

2 回答 2

3

使用HAVING

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

HAVING 基本上是一个WHERE允许您使用聚合函数的方法。

于 2012-09-18T20:23:47.277 回答
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
于 2012-09-18T20:29:11.197 回答