通过sql语句分析足彩(第三篇)(r3笔记第91天)
在之前写过两片关于sql语句分析足彩的。都从不同的角度提供了一些思路,之前是基于500场比赛的数据分析,为了数据分析的更加有说服性,我抽取了7000多场比赛的数据来作为分析的基础。 自己是在世界杯的时候开始买的,发现真是期望越大,失望越大.。 来看看总体的比赛情况。从1月份开始到10月份,有大概7000多场比赛。 我们创建了一个表来存储这些数据。表data的结构如下:
SQL> desc data
Name Null? Type
----------------------------------------- -------- ----------------------------
MATCH_TYPE VARCHAR2(100) --比赛类型,比如世界杯,欧冠,英超等等。
STARTDATE VARCHAR2(15) --比赛时间
HOMETEAM VARCHAR2(100) --主场球队
AWAYTEAM VARCHAR2(100) --客场球队
R NUMBER --让球数
ZHU NUMBER --主场球队进球数
KE NUMBER --客场球队进球数
W NUMBER --主胜赔率
T NUMBER --平局赔率
L NUMBER --主负赔率
RW NUMBER --让球胜赔率
RT NUMBER --让球平赔率
RL NUMBER --让球负赔率
SQL> select count(*)from data where r=-1; --所有比赛中主场让1球的比赛有5092场,占了70%以上的比例,剩下的就是客场让1球,主场让2球等等。
COUNT(*)
----------
5092
我们来主要分析主场让1球的情况.
SQL> select count(*)from data where r=-1 and zhu>ke; --其中主胜的场次有2642场。占到了51.9%的比例。
COUNT(*)
----------
2642
SQL> select count(*)from data where r=-1 and zhu=ke --平局的场次有1317场,基本在25.9%的比例。
COUNT(*)
----------
1317
SQL> select count(*)from data where r=-1 and w=rl; --主负的场次有1133场,基本在22.2%的比例。
COUNT(*)
----------
1133
看来主胜的概率无论如何都是50%左右的比例。从概率论上来说,还是和预期吻合的。一般一场比赛的情况来说,无非就是胜或者不胜,平局和主负占到了50%左右的比例。 我们来举个简单的例子来说明一下主胜,让球负的关系。比如昨天的比赛,尤文图斯和桑普的比赛。比赛的赔率如下: 非让球赔率 1.20 5.00 11.00 让1球赔率 1.80 3.40 3.60 这场比赛不管怎么踢,都脱离不了下面的圈子。我们假设主胜为w,平局为t,主负为l,让球赢为rw,让球平为rt,让球负为rl 主胜1个球以上: w,rw 主胜1个球 : w,rt 平局 : t,rl 主负 : l,rl 如果你仔细分析上面的分布情况,会发现w,rl是包含比赛的各种场景。所以话说回来,你如果投了100块钱,买了主胜,让球负,2串1的比赛就会是4注彩票。肯定不会赔光。 如果赔率在1.4左右,可以保本1.4*1.4*2 / 8 = 0.49 可以保本50%. 当然了从概率的角度来说,两场比赛全是平局/主负的情况占有的比例也不高。如果赚的话,赚钱的比例就是2.2*2.2*2 / 8 =1.21,也就是你投了8块钱能赚到1.6块左右的收益. 我们来看看每场比赛进球总数的情况。
select zhu+ke score,count(*) cnt from data where r=-1 group by zhu+ke order by cnt
SCORE CNT
------ ----------
10 3
9 5
8 21
7 53
6 178
5 356
0 380
4 697
1 896
3 995
2 1180
11 rows selected.
所有比赛中,进球数1,2,3个概率还是很高的。越是冷门赔率越高。 我们来看看比赛的得分情况,概率是怎么样的。 所有的比赛中1:0, 2:0,1:1,2:1的概率还是很高的。
col score format a20
col total format 999
select zhu+ke total,zhu||'-'||ke score,count(*) cnt from data where r=-1 group by zhu+ke,zhu||'-'||ke order by total,cnt;
TOTAL SCORE CNT
---------- -------------------- ----------
0 0-0 380
1 0-1 310
1 1-0 586
2 0-2 159
2 2-0 464
2 1-1 557
3 0-3 64
3 3-0 247
3 1-2 252
3 2-1 432
4 0-4 15
4 1-3 97
4 4-0 106
4 3-1 237
4 2-2 242
5 0-5 8
5 1-4 26
5 5-0 30
5 2-3 80
5 4-1 104
5 3-2 108
6 1-5 5
6 6-0 11
6 2-4 19
6 5-1 37
6 3-3 49
6 4-2 57
7 1-6 1
7 7-0 2
7 2-5 4
7 6-1 8
7 3-4 8
7 4-3 14
7 5-2 16
8 2-6 1
8 8-0 2
8 4-4 2
8 7-1 3
8 5-3 4
8 3-5 4
8 6-2 5
9 5-4 2
9 4-5 3
10 5-5 1
10 6-4 1
10 10-0 1
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vim插件的安装(NERDTree)
- php7的zval相关介绍
- Zend_string与写时复制
- php的引用类型底层解析
- Roslyn 解决 dotnet core 应用进程间引用找不到 runtimeconfig 依赖文件
- dotnet 在 UOS 国产系统上安装 dotnet sdk 的方法
- 清空Redis集群所有节点的数据工具
- php数组hashtable的巧妙设计
- php运行生命周期--模块初始化php_module_startup
- Visual Studio Code的用户设置相关
- php运行生命周期--请求初始化php_request_startup
- 如何在SAP Spartacus自定义UI里使用标准UI的上下文数据
- php运行生命周期--脚本执行阶段 php_execute
- SAP Spartacus中Angular json pipe的工作原理
- 02.Android崩溃Crash库之App崩溃分析