力扣574(MySQL)-当选者(中等)
题目:
表: Candidate
表: Vote
id 是自动递增的主键,CandidateId 是 Candidate 表中的 id.
问题:请编写 sql 语句来找到当选者的名字,上面的例子将返回当选者 B.
注意: 你可以假设没有平局,换言之,最多只有一位当选者。
解题思路:
①先找出Vote表中出现次数最多的选手,将Vote中按CandidateId分组,并统计出现的id次数,降序排序,使用limit 1取出第一名;
1 SELECT CandidateId
2 FROM vote_574
3 GROUP BY CandidateId
4 ORDER BY count( id ) DESC
5 LIMIT 1;
②筛选出Candidate表中与第①步查询出来的CandidateId相对应的Name。
1 SELECT name
2 FROM candidate_574 a,
3 ( SELECT CandidateId
4 FROM vote_574
5 GROUP BY CandidateId
6 ORDER BY count( id ) DESC
7 LIMIT 1 ) as b
8 WHERE
9 a.id = b.CandidateId;
或:
1 SELECT name
2 FROM
3 ( SELECT CandidateId
4 FROM vote_574
5 GROUP BY CandidateId
6 ORDER BY count( id ) DESC
7 LIMIT 1 ) as a
8 JOIN candidate_574 b
9 ON a.CandidateId = b.id;
补充建表语句:
1 Create table If Not Exists Candidate_574 (id int, Name varchar(255));
2 Create table If Not Exists Vote_574 (id int, CandidateId int);
3 -- 删除表中所有行数据
4 Truncate table Candidate_574;
5 insert into Candidate_574 (id, Name) values ('1', 'A');
6 insert into Candidate_574 (id, Name) values ('2', 'B');
7 insert into Candidate_574 (id, Name) values ('3', 'C');
8 insert into Candidate_574 (id, Name) values ('4', 'D');
9 insert into Candidate_574 (id, Name) values ('5', 'E');
10 Truncate table Vote_574;
11 insert into Vote_574 (id, CandidateId) values ('1', '2');
12 insert into Vote_574 (id, CandidateId) values ('2', '4');
13 insert into Vote_574 (id, CandidateId) values ('3', '3');
14 insert into Vote_574 (id, CandidateId) values ('4', '2');
力扣574(MySQL)-当选者(中等)的更多相关文章
- 力扣1689. 十-二进制数的最少数目-C语言实现-中等难度题
题目 传送门 如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 .例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是 ...
- 力扣1438. 绝对差不超过限制的最长连续子数组-C语言实现-中等难度
题目 传送门 文本 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条 ...
- 力扣1052. 爱生气的书店老板-C语言实现-中等难度
题目 传送门 文本 今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时 ...
- 力扣---1148. 文章浏览 I
Views 表:+---------------+---------+| Column Name | Type |+---------------+---------+| article_i ...
- 力扣---511. 游戏玩法分析 I
活动表 Activity: +--------------+---------+| Column Name | Type |+--------------+---------+| player ...
- 力扣算法题—069x的平方根
实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...
- JS数据结构第六篇 --- 二叉树力扣练习题
1.第226题:翻转二叉树 递归+迭代两种实现方式: /** 反转二叉树 * Definition for a binary tree node. * function TreeNode(val) { ...
- 力扣(LeetCode)删除排序链表中的重复元素II 个人题解
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 思路和上一题类似(参考 力扣(LeetCode)删除排序链表中的重复元素 个人题解)) 只不过这里需要用到一个前 ...
- C++双指针滑动和利用Vector实现无重复字符的最长子串—力扣算法
题目: 力扣原题链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给定一个字符串, ...
- LeetCode 1244. 力扣排行榜
地址 https://www.acwing.com/solution/LeetCode/content/5765/ 题目描述新一轮的「力扣杯」编程大赛即将启动,为了动态显示参赛者的得分数据,需要设计一 ...
随机推荐
- nest.sh 脚本 发布服务
每次发布后端nest 直接执行一个脚本即可 给脚本赋值权限 chomd 777 nest.sh nest.sh 脚本 #!/bin/bash cd /root/gateway-study git pu ...
- debian卡顿,造成用户注销现象的原因以及解决方法
现象:当时电脑正在运行,宝塔面板安装初始化应用,一个浏览器,一个虚拟机 解决方法:目前还不清楚--是不是负载过大?好奇怪!
- python 判断bytes是否相等的几种方法
一 前言: python判断bytes是否相等,一般要用到这几种方法:is,==,operator.下面做几个例子让大家看一下. 二 正文: 1 相等方法: test1=b'0xab' test2=b ...
- Linux查看用户的7个命令
Linux是中国IT实验室的一个技术频道.包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类 在Linux系统里,我们会经常用Linux查看用户的命令,在这里我们一些 ...
- HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(2) --- 模型生成及模型仿真(实例分析)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 说说你对keep-alive的理解是什么?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.Keep-alive 是什么 keep-alive是vue中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM ke ...
- 记录-Symbol学习笔记
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 Symbol是JavaScript中的原始数据类型之一,它表示一个唯一的.不可变的值,通常用作对象属性的键值.由于Symbol值是唯一的, ...
- 记录--你还在傻傻的npm run serve吗?快来尝尝这个!
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 背景 大家在日常开发中应该经常会有需要切换不同环境地址的情况.当一个项目代码切换环境地址时,vue-cli没有能够感知文件的变化,所以代理 ...
- 记录--微信调用jssdk--Invalid Signature, updateAppMessageShareData: denied等问题
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 最近在做安卓内嵌入H5活动页拉新活动,遇到的棘手问题记录下, 一是为了日后遇到同样问题好回顾,二是希望能帮到有同样问题的兄弟. 废话不多说 ...
- Clang开发注意事项
Clang tools need their builtin headers and search for them the same way Clang does. Thus, the defaul ...