米国大統領に関する情報を提供するリレーション Presidents(firstName,lastName,beginTerm,endTerm) があります。属性 firstName は、ファースト ネームと、場合によっては 1 つ以上のミドル ネームのイニシャルを含む文字列です。
属性 lastName は、大統領の姓の文字列です。たとえば、前の大統領は firstName = 'George W.' です。彼の父親は firstName = 'George HW'; です。どちらも lastName = 'Bush' です。最後の 2 つの属性 beginTerm と endTerm は、それぞれ大統領が就任した年と辞任した年です。
微妙な点の 1 つは、Grover Cleveland が連続していない 2 期を務めたことです。彼は 2 つのタプルで表示されます。1 つは彼の第 1 タームの開始年と終了年、もう 1 つは第 2 タームの年です。
私が持っている質問は以下です:
父と息子だった大統領の 2 つのペアがあります。しかし、姓を共有した大統領のペアは他にもたくさんあります。2 人以上の大統領の姓をすべて見つけてください。姓を繰り返さないでください。同じ人物が 2 つの異なる任期を務める場合 (例: Grover Cleveland) は、同じ姓を持つ 2 人の大統領のケースを構成しないことに注意してください。
私が最初に考えた答えは次のとおりです。
SELECT lastName
FROM Presidents
WHERE COUNT(lastName) > 2
EXCEPT lastName = 'Cleveland';
ただし、COUNT() 関数を WHERE 句で使用できるかどうかはよくわかりません。これは可能ですか?
ありがとう!