我们经常会遇到各种分类统计问题,须要将这些结果一次显示出来。这次老师提出的要求是我想看60分下面多少人。60~70多少人,70~80多少人。80~90多少人,90~100多少人。他们曾经做的统计信息是。同样分数的有多少人,不同的分数都会在chart图表里显示一列,这种效果一般是不被须要的,并且数据多的时候也会乱七八糟,没有美感,所以老师提出上面開始的要求。

        他们曾经的效果相应的sql语句是:

<span style="font-size:18px;"><strong>select TestScore As 分数,COUNT(TestScore) As 人数 from T_Scores  where ExamID= '" + hs["ExamID"] + "' group by TestScore</strong></span>

        查询结果:

                  

        这种查询结果,有几条记录chart图表就会有多少个柱状条,记录越多就会显得杂乱无章。

        改动后的sql语句:

<pre name="code" class="sql"><span style="font-size:18px;"><strong>select count(result1) as '0~60',count(result2) as '60~70',count(result3) as '70~80', count(result4) as '80~90',count(result5) as '90~100'
from( select (case when TestScore>=0 and TestScore<60 then (StudentNo) end) result1,
(case when TestScore>=60 and TestScore<70 then (StudentNo) end) result2,
(case when TestScore>=70 and TestScore<80 then (StudentNo) end) result3,
(case when TestScore>=80 and TestScore<90 then (StudentNo) end) result4,
(case when TestScore>=90 then (StudentNo) end) result5
from T_Scores where ExamID= '" + hs["ExamID"]+" ')t</strong></span>

        查询结果:

            

        这样对各个阶段的人数是多少。就能非常清楚的知道了。再对查询结果稍作处理。列和行交换一下。这样就是5行记录。每行就是一个阶段相应的总人数。这样每次查询的结果都是5条。相应绑定的chart表就仅仅有5条柱状条。

而他们曾经的查询结果是不一定的,得依据学生的成绩而定。所以相应绑定的chart图表的柱状条数也非常多,他们会一个学生分数就会相应一条柱状条。

改动之前的就相当于一个具体的记录,而人们往往常常须要的不是一个具体的记录。是整体的大概情况。仅仅有出现故障或特殊需求时才会去看一些具体的情况。

这正相应着常说的一句话,“不谋全局者 不足谋一域”。然后大家做的时候就往往将他抛至一边了,所以要试着将一些常说的大道理付诸到咱们的行动上来。

SQL查询各阶段的统计信息的更多相关文章

  1. SQL Server 执行计划利用统计信息对数据行的预估原理以及SQL Server 2014中预估策略的改变

    前提  本文仅讨论SQL Server查询时, 对于非复合统计信息,也即每个字段的统计信息只包含当前列的数据分布的情况下, 在用多个字段进行组合查询的时候,如何根据统计信息去预估行数的. 利用不同字段 ...

  2. SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)

    本文出处:http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里. ...

  3. SQL Server 数据库表的统计信息的更新

             最近在调整基础信息数据时,新增了几个客户类型,意想不到的事情发生了,在使用新增的客户类型作为 查询条件查询报表时,居然出现了超时的现象,但是用其他以前的客户类型查询就没有问题,用一个 ...

  4. SQL Server用户自定义类型与统计信息

    用户自定义数据类型不支持统计信息! 所以查询对它的查询会慢一些.

  5. 用一句SQL查询相对复杂的统计报表

    --统计从2017年3月份开始每个月金融服务支付前分期申请数以及通过(核账完成)数 ,ApplyTime)) ,ApplyTime)) as varchar)+'月' as 日期,count(*) a ...

  6. 【Mysql】使用一条sql查询出库表结构信息

    1.新建查询 将以下脚本粘贴进去 脚本如下: SELECT TABLE_SCHEMA 库名, TABLE_NAME 表名, COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA ...

  7. SQL Server2016 新功能实时查询统计信息

    SQL Server2016 新功能实时查询统计信息 很多时候有这样的场景,开发抱怨DBA没有调优好数据库,DBA抱怨开发写的程序代码差,因此,DBA和开发都成为了死对头,无法真正排查问题. DBA只 ...

  8. SQL Server 中统计信息直方图中对于没有覆盖到谓词预估以及预估策略的变化(SQL2012-->SQL2014-->SQL2016)

    本位出处:http://www.cnblogs.com/wy123/p/6770258.html 统计信息写过几篇了相关的文章了,感觉还是不过瘾,关于统计信息的问题,最近又踩坑了,该问题虽然不算很常见 ...

  9. MS SQL 统计信息浅析上篇

    统计信息概念 统计信息是一些对象,这些对象包含在表或索引视图中一列或多列中的数据分布有关的统计信息.数据库查询优化器使用这些统计信息来估计查询结果中的基数或行数. 通过这些基数估计,查询优化器可以生成 ...

随机推荐

  1. UVa1339 Ancient Cipher

    #include <iostream>#include <string>#include <cstring> // for memset#include <a ...

  2. Java Socket编程 标准范例(多线程)

    链接地址:http://blog.csdn.net/benweizhu/article/details/6615542 服务器端(Server)非多线程 package com.zeph.server ...

  3. 如何将 MFC ActiveX 控件标记为安全,脚本和初始化

    MSDN原文.ActiveX控件标记安全(可以不仅仅是MFC ActiveX) 概要 默认情况下,MFC ActiveX 控件未标记为对脚本编写是安全的和对初始化是安全的.控制运行在 Internet ...

  4. Java虚拟机体系结构

    转自:http://www.cnblogs.com/java-my-life/archive/2012/08/01/2615221.html JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的 ...

  5. 10.PHP 教程_PHP If...Else 语句

    条件语句用于根据不同条件执行不同动作. PHP 条件语句 当您编写代码时,您常常需要为不同的判断执行不同的动作.您可以在代码中使用条件语句来完成此任务. 在 PHP 中,提供了下列条件语句: if 语 ...

  6. 网上下载的“上下3D”和“左右3D”影片该如何播放?

    我们平常买的红蓝3D眼镜智能播放红蓝3D片源.网上找3D电影的时候,虽试图去找红蓝3D格式电影,但总会找到不少“左右格式”或者"上下格式"影片.正常播放后发现有两重画面.这种3D电 ...

  7. xfire发布的Webservice中Spring注入为空的解决方案

    Spring框架使用中注入为空是一个比较头疼的问题,遇到Webservice和Spring框架配合时,这个问题更容易出现并很难发现问题的原因. 在做SSO系统中就遇到这样的问题,在Service的实现 ...

  8. Nginx工作原理和优化、漏洞(转)

    查看安装了哪些模块命令: [root@RG-PowerCache-X xcache]# nginx/sbin/nginx -Vnginx version: nginx/1.2.3built by gc ...

  9. systemd.service 中文手册

    版权声明 本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布. 无担保:本文译者不保证译文内容准确无误,亦不承担任何由于使用此文档所导致的损失. 自由使用:任何人都可以自 ...

  10. perl5 第五章 文件读写

    第五章 文件读写 by flamephoenix 一.打开.关闭文件二.读文件三.写文件四.判断文件状态五.命令行参数六.打开管道 一.打开.关闭文件   语法为open (filevar, file ...