mysql实现每个专业分数段统计人数


本文摘自PHP中文网,作者藏色散人,侵删。

我的表结构

1

2

3

4

student_info

| id |name |profession|score|

|--|--|--|--|

|id|姓名|分数|专业|

按分数段统计

400到500人数,300到400人数

1

2

3

4

select

count(case when score between 400 and 500 then 1 end) as 400到500,

count(case when score between 300 and 400 then 1 end) as 300到400

from student_info;

0467b7450bb4fe48534b769b8dbd46d.png

按分数段和专业统计

400到500人数,300到400人数

1

2

3

4

select

count(case when score between 400 and 500 then 1 end) as 400到500,

count(case when score between 300 and 400 then 1 end) as 300到400

from student_info GROUP BY profession;

e1cd1c512870d513719bc90d9070599.png

sql动态拼接生成

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

int start = 200;

      int end = 700;

      int inter = 10;

      int count = (end-start)/inter;

      StringBuilder sqlBuilder = new StringBuilder();

      sqlBuilder.append("select ");

      for(int i =1;i<=count;i++){

          int next = start+inter-1;

          System.out.println(start + " \t" + next);

          sqlBuilder.append(" count(case when admission_score between ").append(start).append(" and ").append(next).append(" then 1 end) as ").append(start).append("到").append(next);

          if(i!=count){

              sqlBuilder.append(", ");

          }

          start += inter;

      }

      sqlBuilder.append(" from z_student_info");

      System.out.println(sqlBuilder.toString());

输出sql

阅读剩余部分

相关阅读 >>

mysql外键使用详解

mysql安装后.net程序运行出错如何解决

mysql笔记之运算符使用详解

windows下mysql&nbsp;5.7&nbsp;设置区分大小写(敏感),设置默认编码&nbsp;utf8mb4

mysql数据库在centos7下无法远程连接的原因以及解决详解

mysql增加和删除索引的相关操作

mysql版本号怎么查看

详解在mysql查询时,offset过大影响性能的原因与优化方法

mysql中的int(11)代表什么

mysql如何设置自增长id

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...