双色球基础分析--SQL
首先建立一个表,表得数据可以从 福利彩票网站上获得,自己一个一个得录入进去先;
表结构为:
drop table [ dbo ] . [ tbSrcData ]
GO
CREATE TABLE [ dbo ] . [ tbSrcData ] (
[ Q ] [ varchar ] ( 10 ) NOT NULL , -- 期数
[ F1 ] [ int ] NULL , -- 1号球数
[ F2 ] [ int ] NULL , -- 2号球数
[ F3 ] [ int ] NULL , -- 3号球数
[ F4 ] [ int ] NULL , -- 4号球数
[ F5 ] [ int ] NULL , -- 5号球数
[ F6 ] [ int ] NULL , -- 6号球数
[ F7 ] [ int ] NULL , -- 7号兰球数
[ FXQT ] [ int ] NULL -- 快乐星期天球数
) ON [ PRIMARY ]
GO
ALTER TABLE [ dbo ] . [ tbSrcData ] WITH NOCHECK ADD
CONSTRAINT [ PK_tbSrcData ] PRIMARY KEY CLUSTERED
(
[ Q ]
) ON [ PRIMARY ]
GO
CREATE UNIQUE INDEX [ IX_tbSrcData ] ON [ dbo ] . [ tbSrcData ] ( [ Q ] ) WITH IGNORE_DUP_KEY ON [ PRIMARY ]
GO
运行以下代码到查询分析器内:
-- 求单双
Select ZZ. * , 6 - 单 as [ 双 ]
from (
select
* ,
( case when (F1 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F2 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F3 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F4 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F5 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F6 % 2 ) <> 0 then 1 else 0 end ) as 单
from tbSrcData A
) AS ZZ
Select ZZ.单, 6 - 单 as [ 双 ]
into #TTT
from (
select
* ,
( case when (F1 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F2 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F3 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F4 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F5 % 2 ) <> 0 then 1 else 0 end ) +
( case when (F6 % 2 ) <> 0 then 1 else 0 end ) as 单
from tbSrcData A
) AS ZZ
select Sum (单) as a, Sum (双) as b FROM #TTT
drop table #TTT
set nocount on
-- 求出现率最高数
declare @iCount int
declare @dnySql varchar ( 1024 )
declare @F1 int , @F2 int , @F3 int , @F4 int , @F5 int , @F6 int , @F7 int , @Q varchar ( 10 )
declare @WI int
declare @IsNext bit
declare @ILinkCount int
declare @blueNum int
set @iCount = 1
Create Table #TmpTable(
Num Int null
)
while @iCount <= 7
begin
set @dnySql = ' Insert Into #TmpTable select F ' + Convert ( Varchar , @iCount ) + ' from tbSrcData '
Exec ( @dnySql )
set @iCount = @iCount + 1
end
Select Top 6 Num as 号码, Count ( * ) as 出现次数, ( select Count ( * ) from tbSrcData) / Count ( * ) AS 出现期数, ( case when (Num % 2 <> 0 ) then ' 单 ' else ' 双 ' end ) as 类型
from #TmpTable
Group by Num
Order by Count ( * ) Desc
Select Num as 号码, Count ( * ) as 出现次数, ( select Count ( * ) from tbSrcData) / Count ( * ) AS 出现期数, ( case when (Num % 2 <> 0 ) then ' 单 ' else ' 双 ' end ) as 类型
from #TmpTable
Group by Num
Order by Count ( * ) asc
set @blueNum = 0
select @blueNum = BZ.F7 from (
select Top 1 F7 from tbSrcData group by F7 order by Count ( * ) desc
) AS BZ
select @blueNum as ' 兰色号码 '
Select IDENTITY ( int , 1 , 1 ) as AutoID,AZ.号码
Into #TmpListTable
from (
Select Top 6 Num as 号码
from #TmpTable
Group by Num
Order by Count ( * ) Desc
) AS AZ
order by AZ.号码 asc
Drop table #TmpTable
create table # Table (
Q varchar ( 10 ) null ,f1 int null ,f2 int null ,f3 int null ,f4 int null ,f5 int null ,f6 int null ,f7 int null ,fxqt int null
)
Insert into # Table (Q,fxqt) values ( ' 最高频率 ' , 0 )
set @WI = 1
while @WI <= ( Select Max (AutoID) from #TmpListTable)
begin
set @dnySql = ' Update #Table set f ' + Cast ( @WI as Varchar ) + ' =(select 号码 from #TmpListTable where AutoId = ' + Cast ( @WI as varchar ) + ' ) '
exec ( @dnySql )
set @WI = @WI + 1
end
update # Table set f7 = @blueNum
drop table #TmpListTable
select * from # Table
Select IDENTITY ( int , 1 , 1 ) as AutoID, *
Into #TmpLinkTable
from
(
select Q,F1,F2,F3,F4,F5,F6,F7,FXQT, 0 as FLINK from tbSrcData
union all
select Q,F1,F2,F3,F4,F5,F6,F7,FXQT, 0 as FLink from # Table
) as BYZ
drop table # Table
set @WI = 1
while @WI <= ( Select Max (AutoID) from #TmpLinkTable)
begin
select @Q = Q, @F1 = F1, @F2 = F2, @F3 = F3, @F4 = F4, @F5 = F5, @F6 = F6, @F7 = F7 from #TmpLinkTable where AutoID = @WI
set @IsNext = 0
set @ILinkCount = 0
set @IsNext = case when ABS ( @F1 - @F2 ) = 1 then 1 else 0 end
if @IsNext = 1 set @ILinkCount = @ILinkCount + 1
set @IsNext = case when ABS ( @F2 - @F3 ) = 1 then 1 else 0 end
if @IsNext = 1 set @ILinkCount = @ILinkCount + 1
set @IsNext = case when ABS ( @F3 - @F4 ) = 1 then 1 else 0 end
if @IsNext = 1 set @ILinkCount = @ILinkCount + 1
set @IsNext = case when ABS ( @F4 - @F5 ) = 1 then 1 else 0 end
if @IsNext = 1 set @ILinkCount = @ILinkCount + 1
set @IsNext = case when ABS ( @F5 - @F6 ) = 1 then 1 else 0 end
if @IsNext = 1 set @ILinkCount = @ILinkCount + 1
set @IsNext = case when ABS ( @F6 - @F7 ) = 1 then 1 else 0 end
if @IsNext = 1 set @ILinkCount = @ILinkCount + 1
Update #TmpLinkTable set FLINK = @ILinkCount where AutoID = @WI
set @WI = @WI + 1
end
select * from #TmpLinkTable
-- Select (Select Count(*) from #TmpLinkTable ) / (select Sum(FLink) from #TmpLinkTable) as 连数出现频率
select * ,( Select Count ( * ) from #TmpLinkTable ) / ( select Sum (FLink) from #TmpLinkTable) as 平均多少期出现连号,
(f1 + f2 + f3 + F4 + F5 + f6 + f7) as 和
Into #TmpSumTable
from #TmpLinkTable
drop table #TmpLinkTable
select
最高期 = ( select Top 1 Q from #TmpSumTable order by 和 desc ),
最高和 = ( select Top 1 和 from #TmpSumTable order by 和 desc ),
最低期 = ( select Top 1 Q from #TmpSumTable order by 和 asc ),
最低和 = ( select Top 1 和 from #TmpSumTable order by 和 asc )
select ( 152 - 67 ) / 3
select 67
select a. * ,
[ 差 ] = abs ( a.和 - ( Select 和 from #TmpSumTable where AutoId = (a.AutoID + 1 ))),
[ 最大最小差百分比 ] =
(
cast ( abs ( a.和 - ( Select 和 from #TmpSumTable where AutoId = (a.AutoID + 1 ))) as float )
/
cast (
( select Top 1 和 from #TmpSumTable order by 和 desc ) -
( select Top 1 和 from #TmpSumTable order by 和 asc )
as float )
) * 100
from #TmpSumTable a order by Q ASC
-- select
-- 3 , 9 , 12 , 15 , 16 , 4 , 24,
-- 3 + 9 + 12 + 15 + 16 + 4 + 24
-- select 85 * 0.75
-- select 63.75 / 85
Drop table #TmpSumTable
以上是基础的一些统计,暂时没有好的评估办法,象概率那些理论根本屁都没用,因为每个数的出现概率都是一样,所以那些预测软件对下期开什么的评估算法完全是胡扯而已。
出处:http://www.cnblogs.com/Chinasf/archive/2005/10/23/260502.html
转载于:https://www.cnblogs.com/mq0036/p/7229614.html
双色球基础分析--SQL相关推荐
- 双色球得一些基础分析[sql]
代码是心血来潮编写得,就象买彩票一样,为国家做贡献: 首先建立一个表,表得数据可以从福利彩票网站上获得,自己一个一个得录入进去先: 表结构为: if exists (select * from dbo ...
- java 必备面试必备
1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...
- ---------------------------SQL之机选大乐透,双色球算法-----------------------------
----------大乐透-------------------- if object_id('Front') is not null drop table Front go create table ...
- Oracle数据库 | 基于SQL基础分析
个人主页:
- sql之left join、right join、inner join的区别,连接自己时的查询结果测试
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包 ...
- mysql 报表统计sql使用实例_mysql 案例~mysql元数据的sql统计
一 简介:今天我们来收集下提取元数据的sql 二 前沿: information_schema 引擎 memory 元数据收集表 三 sql语句: 1#没有使用索引的表统计 SELECT t.TAB ...
- 将CSV和SQL数据加载到Pandas中
目录 介绍 从CSV加载数据 从SQLite加载数据 基本数据分析 总结 任何数据分析过程的第一步都是摄取数据集,评估数据集的清洁程度,并决定我们需要采取哪些措施来解决继承的问题. 下载CSV和数据库 ...
- 常用API、static、数组复制、双色球练习与酒店管理系统
目录 JDK中的类(API -> 应用程序接口,工具-类) 学习类 接触过的类 软件包package: 常用类[一] 1.Random: 构造方法 new Random() 2.String - ...
- Hive SQL查询效率提升之Analyze方案的实施
0.简介 Analyze,分析表(也称为计算统计信息)是一种内置的Hive操作,可以执行该操作来收集表上的元数据信息.这可以极大的改善表上的查询时间,因为它收集构成表中数据的行计数,文件计数和文件大小 ...
最新文章
- 为什么UDP有时比TCP更有优势?
- 陈松松:如何锁定细分领域,视频营销才更容易持续做下去
- OpenStack对象存储——Swift
- python/数据库操作补充—模板—Session
- 如何使用 Apple Watch 拨打电话?
- OJ 	2306 Problem C	Banana
- 腾讯2018秋招笔试真题-小Q的歌单
- 考研复试——线性代数
- mb计算机单位,mb是什么单位
- 10053 事件浅析
- 036-2018-1028 线程 效率对比 数据共享 同步锁死锁递归锁 守护线程 信号量
- ASEMI整流桥2W10中文资料,ABS10整流桥参数
- 30岁的程序员你不懂
- 遥感专栏(二):常见国产卫星参数介绍(转)
- 智能ai文章伪原创工具-智能ai文章原创处理系统
- 【CC3200AI 实验教程12】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-语音采集
- 山东大学软件学院移动互联网开发技术期末考试回忆版
- 实现智能读报(逐字朗读+自动滚屏)
- 什么是线圈PCB,如何设计自定义电感值线圈PCB
- 解决NEC SV8100 内线分机拨打总机和专用话机自动接听的故障
热门文章
- 智工教育:公务员行测常识内容考查
- 【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) A】Packets
- 不卡的android手机,目前3款公认用三年都不卡的手机,2台来自安卓机,一台是iPhone!...
- 广告配音语音制作软件哪个好?
- html标签 摘要,HTML摘要标签
- 月薪35k的简历是怎么包装的 ,让面试官心动的标准简历(附模板分享)
- preview窗口 unity_Unity Package Manage 窗口
- 程序猿开发软件插件推荐
- 基于Python编程语言实现应用程序定时任务
- 【数据库】关系模式概念