为了在月底给他们奖金,我试图显示所有销售人员的姓名,他们已经销售了10个或更多的订单。
这是我的表架构
CREATE TABLE Salesperson
(
SalespersonId BIGINT,
Name VARCHAR(50),
BirthDate DATE,
Salary INT
);
CREATE TABLE Orders
(
OrderId BIGINT,
OrderDate DATETIME,
SalespersonId BIGINT,
ProductId BIGINT,
SalesPrice DECIMAL(9,2)
);
然后这是我的问题
SELECT Salesperson.Name
FROM Salesperson
JOIN Orders
ON Salesperson.SalespersonId=Orders.SalespersonId
WHERE COUNT(Order.SalespersonId)> 10
我不确定应该将
COUNT()
函数放在哪里,以使它返回销售人员姓名列表。 最佳答案
您需要GROUP BY
,然后使用HAVING
子句筛选:
SELECT Salesperson.Name
FROM Salesperson
JOIN Orders
ON Salesperson.SalespersonId=Orders.SalespersonId
GROUP BY Salesperson.Name
HAVING COUNT(Order.SalespersonId)> 10
HAVING
子句中使用的谓词:COUNT(Order.SalespersonId)> 10
适用于每个
Salesperson.Name
组。因此,它将过滤掉所有人口小于等于cc的群体。关于mysql - SQL COUNT()查询放置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37621899/