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基础视频教程的源码课件分享

mysql essential版本和普通版本有什么区别?

[mysql] mvcc多版本并发控制实现的事务

mysql数据库优化的方法总结(必看)

mysql中utf8和utf8mb4之间的区别有哪些?

mysql数据库条件查询语句的使用方法介绍

mysql是一种什么型数据库管理系统

mysql数据库】第三章解读:服务器性能剖析 (下)

mysql如何把字符串拆成多行

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


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

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

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

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

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

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

评论

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