文档章节

mysql 范围统计(-1)

小张525
 小张525
发布于 2016/12/10 09:54
字数 243
阅读 1
收藏 0
-- 创建数据表
create table score(id int not null auto_increment,score int not null,primary key (id))engine=myisam;

-- 插入数据
insert into score(`score`) values(100),(200),(200),(100),(300),(400),(500),(300),(200),(400),(500),(200),(500),(300);

-- 范围分组


SELECT 
count(a.score_class),a.score_class
FROM
    (SELECT 
        id,
            score,
            (CASE
                WHEN score >= 100 AND score <= 200 THEN 1
                WHEN score > 200 AND score <= 300 THEN 2
                WHEN score > 300 AND score <= 400 THEN 3
                WHEN score > 400 AND score <= 500 THEN 4
                ELSE 5
            END) AS score_class
    FROM
        score) AS a   group by a.score_class;

-- output 

+----------------------+-------------+
| count(a.score_class) | score_class |
+----------------------+-------------+
|                    7 |           1 |
|                    3 |           2 |
|                    2 |           3 |
|                    3 |           4 |
+----------------------+-------------+
4 rows in set (0.00 sec)

-- index
mysql> show index from score;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| score |          0 | PRIMARY  |            1 | id          | A         |          15 |     NULL | NULL   |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.00 sec)

-- explain

+----+-------------+------------+------+---------------+------+---------+------+------+---------------------------------+
| id | select_type | table      | type | possible_keys | key  | key_len | ref  | rows | Extra                           |
+----+-------------+------------+------+---------------+------+---------+------+------+---------------------------------+
|  1 | PRIMARY     | <derived2> | ALL  | NULL          | NULL | NULL    | NULL |   15 | Using temporary; Using filesort |
|  2 | DERIVED     | score      | ALL  | NULL          | NULL | NULL    | NULL |   15 | NULL                            |
+----+-------------+------------+------+---------------+------+---------+------+------+---------------------------------+
2 rows in set (0.04 sec)


-- 写在最后, 这篇文章和上一篇文章是有关系的, 
-- 区别点:
-- 1  分组求和的方式不同
-- 2  有一个行转列的过程.






 

© 著作权归作者所有

共有 人打赏支持
小张525
粉丝 6
博文 101
码字总数 32841
作品 0
乌鲁木齐
程序员
关于数字的经典SQL编程:连续范围问题

【IT168 技术】连续范围问题也是一个非常经典的SQL编程问题。为了使讲解易于理解,我们先来创建一些测试数据。 CREATE TABLE t ( a INT UNSIGNED NOT NULL PRIMARY KEY ); INSERT INTO t VA...

it168网站
2012/12/29
0
0
MySQL · myrocks · myrocks统计信息

概述 mysql查询优化主要是在代价统计分析的基础上进行的。合理的代价模型和准确的代价统计信息决定了查询优化的优劣。myrocks基于mysql5.6, 目前的代价模型依赖的主要因素是IO和CPU,mysql5....

阿里云RDS-数据库内核组
2016/12/03
0
0
单台服务器的数据统计设计

背景 有且只有一台 db 服务器提供服务,该服务器同时支撑业务和统计需要。 统计的表单需要导出成 excel,且后续不能确定该表单是否还会修改。 导出数据的同时,需要为数据写入导出标识。 导出...

saintatgod
2016/05/16
59
0
mysql与oracle去重方案的异同,mysql处于学习阶段不太熟悉,最后有两个解决不了,求大神帮忙补充上

去重查询语句 oracle: select * from table1 a where rowid in (select max(rowid) from table1 b where a.id = b.id) mysql: select a.id,* from table1 a group by a.id 查询重复的语句 or......

混分小菜鸟
2015/03/20
270
2
Mysql对字段进行分段统计

最近做手机银行营销名单时,需对评分(pf)和开户率(khl)进行二维统计 评分和开户率需进行分段统计。 其中,评分取值范围:[0,100],开户率取值范围:[0,1] 以下为测试数据: 一、1个字段...

记事本
01/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

5、前后端分离跨域问题

在以往的开发中,前后端分离也不是像现在这么热门,所谓的前端工程师也只不过是写好静态页面由Java工程师或者php工程师嵌入到页面中进行开发,这或许加重了这些工程师的工作量,而且在样式调...

永远的Chester
8分钟前
0
0
全志T3 Linux显示驱动分析

1、总体架构 全志T3处理器的显示框架是基于标准Linux的帧缓冲架构,其结构如图 1.1所示。显示控制器DE的驱动架构如图 1.2所示,包括屏蔽差异的显示管理抽象层,以及显示图层驱动、显示设备驱...

pnsam301
16分钟前
0
0
【HAVENT原创】VUE2 经验问题汇总

新建一个 Vue 实例可以有下列两种方式: 1. new 一个实例 var app= new Vue({ el:'#todo-app', // 挂载元素 data:{ // 在.vue组件中data是一个函数,要写成data () {}这种方式 i...

HAVENT
19分钟前
0
0
IO基础知识

读文件,可以使用内置的open(file,mode); with 语句自动close; 查看当前目录的绝对路径:os.path.abspath('.'); 创建目录:os.mkdir(path); 删除目录:os.rmdir(path); 拼接路径推荐使用:o...

年轻的中年大叔
22分钟前
0
0
BATJ等大厂最全经典面试题分享

金九银十,又到了面试求职高峰期,最近有很多网友都在求大厂面试题。正好我之前电脑里面有这方面的整理,于是就发上来分享给大家。 这些题目是网友去百度、蚂蚁金服、小米、乐视、美团、58、...

老道士
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部