单表查询练习:彩票数据核对练习

彩票游戏规则:

彩票有10个刮奖区,每个刮奖区有一个图符和一个奖符,彩票中奖金额 = 同一个刮奖区内的(图符倍数* 奖符金额),同时每张彩票售价5元

所有彩票数据存储在lottery.csv文件中,共计600000条记录。根据此数据集完成以下练习:

  1. 求总中奖张数及金额
  2. 求各不同奖符的张数及金额(奖符为5元、10元等)
  3. 求中奖张数与总张数占比
  4. 检查每个本号中有100张彩票
  5. 检查每本彩票中最多只有一张中奖彩票金额超过50元
  6. 检查每本彩票中最多只有连续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——单表查询练习:彩票数据核对相关推荐

  1. Mysql 单表查询where初识

    Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...

  2. 运维高级学习(三):MySQL单表查询作业

    MySQL第三次作业 MySQL单表查询作业 素材如下: DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cs_id` int(11) ...

  3. MySQL单表查询基础卷(A)

    MySQL单表查询基础卷(A) 第一章 数据准备 第二章 数据展示 第三章 题目说明 第四章 参考答案 第一章 数据准备 -- 创建数据库,指定字符集 utf8 CREATE DATABASE IF ...

  4. mysql 单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 关键字的执行优 ...

  5. 0x06 MySQL 单表查询

    一 单表查询语法 SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 关键字执行优先级 ...

  6. mysql单表查询详解

    文章目录 一.单表查询 1.1 创建数据库 1.2 单表查询 1.2.1 查询所有字段 1.2.2 使用通配符*查询所有字段 1.2.3 查询指定字段 1.2.4 去重distinct的使用 1.2. ...

  7. mysql单表查询实例_MySQL简单查询详解-单表查询

    MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...

  8. Mysql单表查询和多表查询

    单表查询 一 单表查询的语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据.下面是完整的一个单表查询的语法select * from, ...

  9. MySQL单表查询练习题

    数据准备:install.bat @ECHO OFF ::未配置环境变量下 cd C:\Program Files\MySQL\MySQL Server 5.7\bin\ SET dbhost=127 ...

最新文章

  1. 新版 apache_2.0.54 php-5.0.4 mysql-4.1.12a 组合安装向导(原创)
  2. windows调用ubuntu下的sublimeText2环境搭建
  3. 训练集样本不平衡问题对CNN的影响
  4. Exception from HRESULT: 0x800A03EC
  5. 会议交流 - CNCC 技术论坛 | NLP中知识和数据怎么选?当然是全都要!——第四届中文信息技术发展战略研讨会...
  6. ·必须《飞鸽~飞鸽传书》
  7. java创建android快捷方式_Android 通过应用程序创建快捷方式
  8. MVC 实体如何获取子集
  9. 【ArcGIS|空间分析|网络分析】1 创建网络数据集
  10. 浏览器页面渲染的过程
  11. 2021泰迪杯B题数据处理4.1
  12. 内网安全“小迪安全课堂笔记”域横向
  13. Golang学习之路(一):Golang安装和配置
  14. pointnet源码阅读:测试
  15. C语言模拟实现虚拟存储管理(请求分页存储管理)
  16. C. Not Adjacent Matrix
  17. 一些可以参考的文档集合10
  18. 恶意代码检测c语言,恶意代码检测分析软件
  19. laravel seeding
  20. 微信小程序、微信小游戏作品汇总合集,各种好玩的小程序

热门文章

  1. 传输滤波器的选型及使用说明
  2. python自动测试g_Python自动化测试如何自动生成测试用例?
  3. 基于hsv的亮度调整算法_基于手绘工程图离线识别的预处理研究精品论文推荐
  4. SOCKET/串口通信粘包问题处理,附带详细代码
  5. 在markdown中设置字体颜色以及背景颜色
  6. 2019五月到六月反思复盘
  7. linux libpath的作用,linux – LD_LIBRARY_PATH似乎不起作用
  8. qq分享 设备未授权报错解决方案_金融行业思科设备典型网络故障案例:76系列典型案例(四)...
  9. 机器学习笔记:高斯过程
  10. Linux疑难杂症解决方案100篇(十)-带你学习提速增效的几个常用 shell 命令