我有一个关系 Presidents(firstName,lastName,beginTerm,endTerm),它提供有关美国总统的信息。属性 firstName 是一个带有名字的字符串,在某些情况下,一个或多个中间名首字母。
属性 lastName 是带有总统姓氏的字符串。例如,前任总统的 firstName = 'George W.' 他的父亲有 firstName = 'George HW'; 两者都有 lastName = 'Bush'。最后两个属性 beginTerm 和 endTerm 分别是总统进入和离开办公室的年份。
一个微妙之处是 Grover Cleveland 服务了 2 个不连续的术语。他出现在 2 个元组中,一个是他第一任期的开始和结束年份,另一个是第二任期。
我的问题如下:
总统有两对父子。但是还有许多其他总统对共享姓氏。查找属于 2 位或更多总统的所有姓氏。不要重复姓氏,并记住同一个人担任 2 个不同的任期(例如,格罗弗·克利夫兰)并不构成 2 位总统具有相同姓氏的情况。
我首先想到的答案可能是:
SELECT lastName
FROM Presidents
WHERE COUNT(lastName) > 2
EXCEPT lastName = 'Cleveland';
我不太确定 COUNT() 函数是否可以在 WHERE 子句中使用。这可能吗?
谢谢!