zoukankan      html  css  js  c++  java
  • SQL查询各阶段的统计信息

            我们经常会遇到各种分类统计问题,须要将这些结果一次显示出来。这次老师提出的要求是我想看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图表的柱状条数也非常多,他们会一个学生分数就会相应一条柱状条。

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

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

  • 相关阅读:
    Codeforces 514C Watto and Mechanism(字典树)
    计蒜客 直线的交点(计算几何 + 逆序对)
    Codeforces 837D Round Subset(背包)
    计蒜客 商汤科技的行人检测(随机化+计算几何)
    HDU 5893 List wants to travel(树链剖分+线段树)
    操作系统的中断处理
    Linux 安装 webmin
    Fedora 安装 phpMyAdmin(可能只有自己看得懂)
    httpd编译安装php
    IA-32e架构下的内核初始化内存管理
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5176384.html
Copyright © 2011-2022 走看看