使用sql语句分析双色球(85天)

这个题目看似有点无厘头,老写技术博客,也来干点“正事",用sql语句分析一下近十年来的双色球情况,不过我肯定算不出来开奖结果,纯属个人娱乐, 个人觉得概率让一切皆有可能,但是用sql语句测试,有些结果还是和大家的想象有很大的出入。 首先通过博彩网站找到数据来源,可以下载成excel文档之类的,对格式做一个简单的排版。 然后对这些结果拼凑sql语句,类似如下的方式。 insert into test_data values(2014051 , 10,16,19,21,23,24,13 );

insert into test_data values(2014050 , 03,17,23,25,26,32,13 );

insert into test_data values(2014049 , 06,07,16,17,23,32,06 ); 在数据库中建立一个表test_data,语句如下: create table test_data(red1 number(2),red2 number(2),red3 number(2),red4 number(2),red5 number(2),red6 number(2),blue number(2)); 然后就可以跑这个脚本了,把数据插入进去。

SQL> select count(*)from test_data;
  COUNT(*)
----------
      1651

这些年来,从2003年起到目前为止一共有1600多期。 来看看下面的结果吧 1.开奖结果(红球+蓝球)有重复,隐隐觉得应该还是会有重复的结果。 SQL> select count(*),red1,red2,red3,red4,red5,red6,blue from test_data group by red1,red2,red3,red4,red5,red6,blue having count(*)>1; no rows selected 2.可能有些苛刻,那么红球相等的几率有多大呢。 SQL> select count(*),red1,red2,red3,red4,red5,red6 from test_data group by red1,red2,red3,red4,red5,red6 having count(*)>1; no rows selected 3. 6个红球,连续的情况有吗? SQL> select *from test_data where red1+red2+red3+red4+red5+red6=(red1+red6)*red5/2 2 / no rows selected 4. 6个连续的没有,5个的有吗? SQL> select *from test_data where red2+red3+red4+red5+red6=(red2+red6)*red5/2 2 / no rows selected SQL> select *from test_data where red1+red2+red3+red4+red5=(red1+red5)*red4/2 2 / no rows selected 5. 连续4个的呢。看来还是有的,不过是很小的概率了。 red1+red2+red3+red4=(red1+red4)*red3/2 or red2+red3+red4+red5=(red2+red5)*red4/2 or red3+red4+red5+red6=(red3+red6)*red5/2 SEQ_NO RED1 RED2 RED3 RED4 RED5 RED6 BLUE --------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- 2011087 2 3 4 5 18 28 1 2011037 1 3 4 6 17 25 11 2007059 1 3 4 6 7 29 14 2006151 1 3 4 6 16 22 8 2005027 1 3 4 6 21 32 15 2003087 2 3 4 5 24 28 13 6. 6个数字都在10以内的情况怎么样呢。 SQL> select *from test_data where red6<=10; no rows selected 点到为止,可以看到尽管概率存在,但是从这些年的情况来看,有些事情和咱们想象的还是有些出入。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-05-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿

【学生管理系统C语言】没有用数据库,正在学习C语言的看看吧

#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> # defin...

33111
来自专栏更流畅、简洁的软件开发方式

为or、in平反——or、in到底能不能利用索引?

  先说一个笑话,作为开场白。俺也换换风格试一试,呵呵。   在以前,有三个书生赶考,在路上遇到了一个算命先生,于是就问算命先生:我们三个人赶考,结果如何呀?...

18610
来自专栏逸鹏说道

我为NET狂官方面试题-数据库篇

求结果:select "1"? 查找包含"objs"的表?查找包含"o"的数据库? 求今天距离2002年有多少年,多少天? 请用一句SQL获取最后更新的事...

3268
来自专栏GreenLeaves

Oracle 中运用rollup和cube实现汇总运算

前言、看了很多的随笔博文内容都是关于rollup和cube的用法,发现一个问题,很多都是一样或者转载的,但这都不是重点,重点是,他们写的都太专业化了,直接给一个...

1757
来自专栏AhDung

【T-SQL】分布抽取部分数据

好吧,我确实不知道该怎么起这个标题,整了一个“分布”,感觉还有点高档,其实没啥技术含量,看完你就知道了。情况是这样,刚刚接到一个临时任务,需要让几个营业点的销售...

692
来自专栏racaljk

2018第九届蓝桥杯决赛(C++ B组)

x星球的钞票的面额只有:100元,5元,2元,1元,共4种。 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱。 小明有...

863
来自专栏AhDung

【SQL】分享表值函数FMakeRows,用于生成行

评论中又有一位【笑东风】兄给出改善建议,在此先感谢他。原理是借助行数较多的一个系统视图sys.all_columns与自身做cross join,以得到大量现成...

673
来自专栏杨建荣的学习笔记

Oracle和MySQL中短小精悍的SQL

如果让你写一个简单牛叉的SQL,数据库类型不限,你会写出什么样的SQL语句。 Oracle 如果是Oracle,我就写个drop table dual; ...

3245
来自专栏IT派

SQL的巨大飞跃:MySQL 8.0发布

“你仍在使用SQL-92吗?”是我在“新SQL”演讲中的开篇问题。在我提出这个问题后,竟然有大部分观众坦承仍在使用25年前的技术。而如果我问谁还在使用Windo...

884
来自专栏杨建荣的学习笔记

Oracle表中含有255列以上时需要注意的(r12笔记第77天)

今天看JL(Jonathan Lewis)的一篇文章,真是费了不少的脑细胞,玩Oracle几十年的老司机,看问题的角度和深度果然不一样,当时看他的大作《O...

33610

扫描关注云+社区