最近用到的 sql 统计操作
统计操作
1、分组统计group by
select id,name,count(*) as '总数' from test1 group by id,name --group by 分组字段需要和显示字段一至 并且可以直接使用count(*)统计各有多少数量
2、case when 对数据进行分组
select
case when (id<'1') then '1' when(id>='1' and id<='3') then '2'
else '3'
end 'work_age'
from test1
group by
case when (id<'1') then '1' when(id>='1' and id<='3') then '2'
else '3' --group by 跟前面的一样。
end
3、综合汇总操作
1、直接分类统计
selectcount(*) as 总人数,sum(case when gender=1 then 1 else 0 end) as '男生人数', --男生为1 女生为2sum(case when gender=2 then 1 else 0 end) as '女生人数'from test1
2、分组后在进行分类统计
select id,
count(*) as 总人数,sum(case when id='1' then 1 else 0 end) as '男生人数', --男生为1 女生为2
sum(case when id='2' then 1 else 0 end) as '女生人数',
sum(case when id not in ('1','2') then 1 else 0 end) as '不男不女人数'
from test1
group by id--这里的ID可以当成班级
4、汇总条件及运行时间
--通过子查询进行汇总select userid,username,count(*) from (select userid,username,cdid,cdname from test2 where cdid='110') agroupby userid,username--0.12S--直接通过关联查询后进行汇总select userid,username,count(*) from test1 as a left join test2 on a.userid=b.userid where b.cdid='110' group by a.userid,a.username--0.23S--上面这两个汇总在不同情况下,运行时间各有长段,在当前情况下选择第一种比较好。--在使用时根据不同情况选择不同的方式进行汇总。
最近用到的 sql 统计操作的更多相关文章
- SQL用法操作合集
SQL用法操作合集 一.表的创建 1.创建表 格式: 1 CREATE TABLE 表名 2 (列名 数据类型(宽度)[DEFAULT 表达式][COLUMN CONSTRAINT], 3 ... ...
- SQLite支持的SQL数据操作
事务处理 Posted on 2013 年 1 月 1 日 by 林溪 事务为一组SQL命令的集合,这些SQL命令在执行时不可进行分割,即要么全部执行这些SQL命令,要么一个都不进行执行,事务操作 ...
- SQL语句操作大全
SQL语句操作大全 本文分为以下六个部分: 基础部分 提升部分 技巧部分 数据开发–经典部分 SQL Server基本函数部分 常识部分 一.基础 1.说明:创建数据库CREATE DATABAS ...
- MS SQL统计信息浅析下篇
MS SQL统计信息浅析上篇对SQL SERVER 数据库统计信息做了一个整体的介绍,随着我对数据库统计信息的不断认识.理解,于是有了MS SQL统计信息浅析下篇. 下面是我对SQL Serve ...
- SQL统计——按照各种维度
在SQLserver中可以按照各种维度进行统计,实现与EXCLE一样强大的功能. --========================== --Blog:<奔跑的金鱼> --Desc:&l ...
- sql server操作2:查询数据库语句大全【转】
注:以下操作均建立在上篇文章sql Server操作1的数据基础之上 一.实验目的 熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询 二.实验内容和要求 使用SQL查询分析器查询数据,练 ...
- SQL写操作 设置内容 (数组转字符串)
SQL写操作 设置内容 (数组转字符串) SQL set内容 SQL操作数组转字符串 SQL写操作 set内容 (数组转字符串) [ 封装方法 ] function getSqlSet( $data ...
- SQL 数据操作(实验六)
SQL 数据操作 emp.dept 目标表结构及数据 INSERT 命令的使用与结果验证 2.1把一名新来雇员信息插入到EMP表中:雇员号:1011 姓名: 王晓明 入职日期:今天 ```insert ...
- SQL字符串操作汇总
SQL字符串操作汇总 --将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处 select stuff('hello,world!',4,4,'****') --返回值hel*** ...
随机推荐
- 前端通信:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码(改迭代已作废,移步迭代10)
该迭代已作废,最新的请移步这里:https://www.cnblogs.com/GerryOfZhong/p/10726306.html 距离上一篇博客书写,又过去了大概几个月了,这段时间暂时离开了这 ...
- Linux安装codis
codis用go语言开发的,安装前记得先安装go开发环境,Linux安装go语言开发包 前提条件:记得安装git,否则无法下载go语言开发包 1.建立一个go语言的工作目录创建目录:sudo mkdi ...
- canvas实现涂鸦板
实现思路:监听鼠标按下.移动.松开事件,将鼠标按下的值赋值给moveTo的x和y值,作为起始位置.在移动事件中,将鼠标距离可视区x和y值赋给lineTo,再将路径闭合.以下是具体的代码 <!DO ...
- mysql 导出数据时进行压缩
mysqldump < mysqldump options> | gzip > outputfile.sql.gz 例子: mysqldump -uroot -p your_data ...
- 读jQuery源码释疑笔记
本释疑笔记是针对自己在看源码的过程中遇到的一些问题的解答,对大众可能不具有参考性,不过可以看看有没有你也不懂得地方,相互学习,相互进步. 1.each的用法 之前对each的用法一直迷迷糊糊,这次终 ...
- stack堆栈容器、queue队列容器和priority_queue优先队列容器(常用的方法对比与总结)
stack堆栈是一个后进先出的线性表,插入和删除元素都在表的一端进行. stack堆栈的使用方法: 采用push()方法将元素入栈: 采用pop()方法将元素出栈: 采用top()方法访问栈顶元素: ...
- Linux中locate命令的实践总结
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 di ...
- Spring基础(1) : 自动装配
1.自动装配 1.1 byType 1.1.1根据类型自动匹配,若当前没有类型可以注入或者存在多个类型可以注入,则失败.必须要有对于的setter方法 public class Person{ pub ...
- 使用WPF教你一步一步实现连连看(三)
这次首先对以前的结构进行了调整: 第一步:把MyButton按钮的属性独立成一个类,放在一个单独的MyButton.cs中,把图片的初始化也放到里面. 调整代码如下: public class MyB ...
- CruiseControl 安装配置
https://sourceforge.net/projects/ccnet/files/CruiseControl.NET%20Releases/ 一个完整的配置文件(VS2010的解决方案)其他版 ...
