被问到有关奥林匹克数据库的问题。
“对于参加过一项以上赛事的每位参赛者,请列出他们的名字、姓氏、他们的赛事数量以及他们最好和最差的地方(并且没有其他数据)。按人数的降序列出这些信息项目数量(即大多数项目在前),并且(当竞争对手的项目数量相同时)然后按最佳位置的升序排列,(当相同的最佳位置时)然后按最差位置的升序排列,并且(当相同的最差位置时)位置)然后按他们的姓氏升序排列。”
我一直在尝试编写查询来执行此操作,但是它没有返回正确的计数。它在计数为 2 时停止,并且不返回正确的最小值或最大值。这些表格是:
竞争对手表
Competitornum | Givenname | Familyname | Gender | Dateofbirth | CountryCode |
结果表有
Eventid | Competitornum | Place | Lane | Elapsedtime | Note |
询问
SELECT c.Givenname, Familyname, COUNT(r.Competitornum), MIN(r.Place), MAX(r.Place)
FROM Competitors c
JOIN Results r
ON c.Competitornum=r.Competitornum
Group by c.Givenname, familyname, place
Having Count(r.Competitornum) > 1
这是我到目前为止提出的查询,不确定我有什么问题。