MySQL——单表查询练习:彩票数据核对
单表查询练习:彩票数据核对练习
彩票游戏规则:
彩票有10个刮奖区,每个刮奖区有一个图符和一个奖符,彩票中奖金额 = 同一个刮奖区内的(图符倍数* 奖符金额),同时每张彩票售价5元
所有彩票数据存储在lottery.csv文件中,共计600000条记录。根据此数据集完成以下练习:
- 求总中奖张数及金额
- 求各不同奖符的张数及金额(奖符为5元、10元等)
- 求中奖张数与总张数占比
- 检查每个本号中有100张彩票
- 检查每本彩票中最多只有一张中奖彩票金额超过50元
- 检查每本彩票中最多只有连续7张无奖票
use test;
# 创建表结构
create table lottery123
( FNo varchar(10) not null, #null的部分自动填充为0
TNo varchar(10) not null,
Mark varchar(20) not null,
reward varchar(20) not null,
bingovalue int not null );'''还是决定用navicat导入'''
select * from lottery
limit 10;
# 创建一个自增字段,用来记录彩票张数
# 先建列,再自增,不然由于载入速度的问题,元原数据顺序会改变
use test;
alter table lottery add id int;
alter table lottery modify id int not null auto_increment primary key first;# 1求总中奖张数及金额
select count(bingovalue) as 中奖总张数,sum(bingovalue) as 中奖总金额
from lottery
where bingovalue != 0;
# 2求各不同奖符的张数及金额
select bingovalue as 奖符,count(bingovalue) as 张数,sum(bingovalue) as 金额
from lottery
where bingovalue != 0
group by bingovalue;
# 3求中奖张数与总张数占比,中奖金额与总金额的占比
set @allcount=(select count(*) from lottery);
set @allsum=(select count(*)*5 from lottery);
select count(bingovalue)/@allcount as 中奖张数占比, sum(bingovalue)/@allsum as 中奖金额占比
from lottery
where bingovalue != 0;
# 4检查每个本号下有100张彩票
select FNo, count(FNo) from lottery
group by FNo
having count(FNo) != 100;
# 5检查每个本号下最多有一张中奖票金额超过50元
select FNo,count(FNo) from lottery
where bingovalue>50
group by FNo
having count(FNo)>1;
# 6检查每本彩票中最多连续7张无奖票
select *,rownumber1-rownumber-1 as gap
from(select *, lead(rownumber,1) over(partition by Fno) as rownumber1
from(select * from lottery where bingovalue<>0) as a) as b
where rownumber1-rownumber-1>=7;
MySQL——单表查询练习:彩票数据核对相关推荐
- Mysql 单表查询where初识
Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...
- 运维高级学习(三):MySQL单表查询作业
MySQL第三次作业 MySQL单表查询作业 素材如下: DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cs_id` int(11) ...
- MySQL单表查询基础卷(A)
MySQL单表查询基础卷(A) 第一章 数据准备 第二章 数据展示 第三章 题目说明 第四章 参考答案 第一章 数据准备 -- 创建数据库,指定字符集 utf8 CREATE DATABASE IF ...
- mysql 单表查询
一 单表查询的语法 SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 关键字的执行优 ...
- 0x06 MySQL 单表查询
一 单表查询语法 SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 关键字执行优先级 ...
- mysql单表查询详解
文章目录 一.单表查询 1.1 创建数据库 1.2 单表查询 1.2.1 查询所有字段 1.2.2 使用通配符*查询所有字段 1.2.3 查询指定字段 1.2.4 去重distinct的使用 1.2. ...
- mysql单表查询实例_MySQL简单查询详解-单表查询
MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...
- Mysql单表查询和多表查询
单表查询 一 单表查询的语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据.下面是完整的一个单表查询的语法select * from, ...
- MySQL单表查询练习题
数据准备:install.bat @ECHO OFF ::未配置环境变量下 cd C:\Program Files\MySQL\MySQL Server 5.7\bin\ SET dbhost=127 ...
最新文章
- 新版 apache_2.0.54 php-5.0.4 mysql-4.1.12a 组合安装向导(原创)
- windows调用ubuntu下的sublimeText2环境搭建
- 训练集样本不平衡问题对CNN的影响
- Exception from HRESULT: 0x800A03EC
- 会议交流 - CNCC 技术论坛 | NLP中知识和数据怎么选?当然是全都要!——第四届中文信息技术发展战略研讨会...
- ·必须《飞鸽~飞鸽传书》
- java创建android快捷方式_Android 通过应用程序创建快捷方式
- MVC 实体如何获取子集
- 【ArcGIS|空间分析|网络分析】1 创建网络数据集
- 浏览器页面渲染的过程
- 2021泰迪杯B题数据处理4.1
- 内网安全“小迪安全课堂笔记”域横向
- Golang学习之路(一):Golang安装和配置
- pointnet源码阅读:测试
- C语言模拟实现虚拟存储管理(请求分页存储管理)
- C. Not Adjacent Matrix
- 一些可以参考的文档集合10
- 恶意代码检测c语言,恶意代码检测分析软件
- laravel seeding
- 微信小程序、微信小游戏作品汇总合集,各种好玩的小程序
热门文章
- 传输滤波器的选型及使用说明
- python自动测试g_Python自动化测试如何自动生成测试用例?
- 基于hsv的亮度调整算法_基于手绘工程图离线识别的预处理研究精品论文推荐
- SOCKET/串口通信粘包问题处理,附带详细代码
- 在markdown中设置字体颜色以及背景颜色
- 2019五月到六月反思复盘
- linux libpath的作用,linux – LD_LIBRARY_PATH似乎不起作用
- qq分享 设备未授权报错解决方案_金融行业思科设备典型网络故障案例:76系列典型案例(四)...
- 机器学习笔记:高斯过程
- Linux疑难杂症解决方案100篇(十)-带你学习提速增效的几个常用 shell 命令