mySQL 排除计数列(如果低于)

标签 mysql join count subquery

我正在尝试查找每种类型所有者的工作时间总和,不包括经验级别为“初级”的员工以及任何少于 3 名成员的经验级别类型的员工的服务。我一直在研究这个问题,但无法得到答案......

表格:

OWNER ( OwnerID, OwnerName, OwnerEmail, OwnerType )
PROPERTY ( PropertyID, PropertyName, Street, City, State, Zip, OwnerID )
EMPLOYEE ( EmployeeID, LastName, FirstName, CellPhone, ExperienceLevel )
SERVICE ( PropertyID, EmployeeID, ServiceDate, HoursWorked )

我最新的查询:

SELECT OwnerType, SUM(HoursWorked) AS SumOfHoursWorked
 FROM EMPLOYEE, SERVICE, OWNER
 WHERE EMPLOYEE.EmployeeID = SERVICE.EmployeeID 
 AND EMPLOYEE.ExperienceLevel <> 'Junior'
 AND (SELECT COUNT(ExperienceLevel) > 2)

最佳答案

select 语句中的所有表之间都需要有联接条件,并且您仅限定员工和服务之间的联接。

除了

where employee.employeeid = service.employeeid 

添加

and service.propertyid = property.propertyId 
and property.ownerid = owner.ownerid  

正如 Mihai 的评论所建议的

and employee.experiencelevel in (select experiencelevel from employee having count(*) > 2)

最后,如果对值进行分组,求和效果会更好。

group by ownertype;

关于mySQL 排除计数列(如果低于),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19393792/

相关文章:

php - 虽然我在 sql 查询中使用 ampersent '&',但它会在文本后忽略!并且查询为假

mysql - 通过映射表一对多连接查询

python - Spark join 抛出 'function' object has no attribute '_get_object_id' 错误。我该如何解决?

sql - PostgreSQL 中大写名称的正则表达式检查

php - mysql 计数,其中行 = 0

mysql - sql查询更新不同数据库中两个联合表之间的数据

php - Codeigniter-管理员为特定用户添加数据,用户在登录时看到管理员输入的数据

mysql - 复杂查询中的语法错误

Excel COUNTIF 单元格包含给定文本(部分匹配)

PHP如何仅根据特定表类型计算总计