我有以下数据结构
| Name | Contract Type |
|:------|--------------:|
| Frank | Student |
| Frank | Staff |
| Frank | Staff |
| John | Internship |
| John | Student |
| John | Staff |
| Tim | Internship |
| Tim | Staff |
我想获取那些在其工作历史中既有学生合同又有其他合同的员工的Names
。我的方法是:
Select Name, count(Name) from table
where ContractType = ('Student') AND (ContractType = ('Staff') OR ContractType = ('Internship') )
group by Name having count (Name) > 1
这里的问题是我仍然得到了所有员工。有谁能帮助我完成这个任务吗?
SUM
来计数,然后再用COUNT
不奇怪吗?我会在两个地方都使用COUNT
以保持一致性,并且更清楚你想要做什么。 - Juan Carlos OropezaSUM
进行计数与使用COUNT
同样普遍。 - Thorsten Kettnercount()
需要知道count()
不会计算NULL值,但会计算其他所有数据。 - juergen dSUM
和COUNT
的作用。在使用函数时,我认为不需要保持一致性,因为它们用于评估不同的东西。 - Lamak