代码是心血来潮编写得,就象买彩票一样,为国家做贡献;
首先建立一个表,表得数据可以从 福利彩票网站上获得,自己一个一个得录入进去先;

表结构为:

if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[tbSrcData] ' )  and   OBJECTPROPERTY (id, N ' IsUserTable ' )  =   1 )
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 * from tbSrcData


-- 求单双

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相关推荐

  1. 双色球得一些基础分析[sql]

    代码是心血来潮编写得,就象买彩票一样,为国家做贡献: 首先建立一个表,表得数据可以从福利彩票网站上获得,自己一个一个得录入进去先: 表结构为: if exists (select * from dbo ...

  2. java 必备面试必备

    1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...

  3. ---------------------------SQL之机选大乐透,双色球算法-----------------------------

    ----------大乐透-------------------- if object_id('Front') is not null drop table Front go create table ...

  4. Oracle数据库 | 基于SQL基础分析

    个人主页:

  5. sql之left join、right join、inner join的区别,连接自己时的查询结果测试

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包 ...

  6. mysql 报表统计sql使用实例_mysql 案例~mysql元数据的sql统计

    一 简介:今天我们来收集下提取元数据的sql 二 前沿: information_schema  引擎 memory 元数据收集表 三 sql语句: 1#没有使用索引的表统计 SELECT t.TAB ...

  7. 将CSV和SQL数据加载到Pandas中

    目录 介绍 从CSV加载数据 从SQLite加载数据 基本数据分析 总结 任何数据分析过程的第一步都是摄取数据集,评估数据集的清洁程度,并决定我们需要采取哪些措施来解决继承的问题. 下载CSV和数据库 ...

  8. 常用API、static、数组复制、双色球练习与酒店管理系统

    目录 JDK中的类(API -> 应用程序接口,工具-类) 学习类 接触过的类 软件包package: 常用类[一] 1.Random: 构造方法 new Random() 2.String - ...

  9. Hive SQL查询效率提升之Analyze方案的实施

    0.简介 Analyze,分析表(也称为计算统计信息)是一种内置的Hive操作,可以执行该操作来收集表上的元数据信息.这可以极大的改善表上的查询时间,因为它收集构成表中数据的行计数,文件计数和文件大小 ...

最新文章

  1. 为什么UDP有时比TCP更有优势?
  2. 陈松松:如何锁定细分领域,视频营销才更容易持续做下去
  3. OpenStack对象存储——Swift
  4. python/数据库操作补充—模板—Session
  5. 如何使用 Apple Watch 拨打电话?
  6. OJ 2306 Problem C Banana
  7. 腾讯2018秋招笔试真题-小Q的歌单
  8. 考研复试——线性代数
  9. mb计算机单位,mb是什么单位
  10. 10053 事件浅析
  11. 036-2018-1028 线程 效率对比 数据共享 同步锁死锁递归锁 守护线程 信号量
  12. ASEMI整流桥2W10中文资料,ABS10整流桥参数
  13. 30岁的程序员你不懂
  14. 遥感专栏(二):常见国产卫星参数介绍(转)
  15. 智能ai文章伪原创工具-智能ai文章原创处理系统
  16. 【CC3200AI 实验教程12】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-语音采集
  17. 山东大学软件学院移动互联网开发技术期末考试回忆版
  18. 实现智能读报(逐字朗读+自动滚屏)
  19. 什么是线圈PCB,如何设计自定义电感值线圈PCB
  20. 解决NEC SV8100 内线分机拨打总机和专用话机自动接听的故障

热门文章

  1. 智工教育:公务员行测常识内容考查
  2. 【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) A】Packets
  3. 不卡的android手机,目前3款公认用三年都不卡的手机,2台来自安卓机,一台是iPhone!...
  4. 广告配音语音制作软件哪个好?
  5. html标签 摘要,HTML摘要标签
  6. 月薪35k的简历是怎么包装的 ,让面试官心动的标准简历(附模板分享)
  7. preview窗口 unity_Unity Package Manage 窗口
  8. 程序猿开发软件插件推荐
  9. 基于Python编程语言实现应用程序定时任务
  10. 【数据库】关系模式概念