574. 当选者(中等)
-
SQL架构
-
表: Candidate
-
+-----+---------+ | id | Name | +-----+---------+ | 1 | A | | 2 | B | | 3 | C | | 4 | D | | 5 | E | +-----+---------+
-
-
表: Vote
-
+-----+--------------+ | id | CandidateId | +-----+--------------+ | 1 | 2 | | 2 | 4 | | 3 | 3 | | 4 | 2 | | 5 | 5 | +-----+--------------+ id 是自动递增的主键, CandidateId 是 Candidate 表中的 id.
-
-
请编写 sql 语句来找到当选者的名字,上面的例子将返回当选者 B
-
+------+ | Name | +------+ | B | +------+
-
注意:你可以假设没有平局,换言之,最多只有一位当选者。
-
-
解答
-
SELECT c.name from candidate c INNER JOIN ( select candidateID,count(id) as maxcount from vote GROUP BY candidateID ORDER BY maxcount desc LIMIT 0,1 ) a on c.id = a.candidateID
-
-
知识点总结
- 内连接查询
- count()函数的使用
- order by的使用
- limit 的使用
-