select whbmbh ,zt,1 as tjsl from fyxx group by zt,whbmbh
select whbmbh,sum(case zt when '有效' then 1 end) as yxsl,sum(case zt when '暂缓' then 1 end )as zhsl,sum(case zt when '未知' then 1 end) as wzsl,sum(case zt when '我租' then 1 end) as wzsl,sum(case zt when '他租' then 1 end) as tzsl,sum(case zt when '我售' then 1 end) as wssl,sum(case zt when '他售' then 1 end) as tssl ,sum(case zt when '撤单' then 1 end) as cdsl,sum(case zt when '电话错误' then 1 end) as dhcwsl,sum(case zt when '待确认' then 1 end) as dqrsl,sum(case zt when '已驳回' then 1 end) as ybhsl from fyxx group by whbmbh
下面是摘自别人的博客
最近遇到一个问题,需要对一张表做统计,这个统计有什么特别之处值得我记录了下来呢?大家知道SQL中聚合函数GROUP BY的结果一般为一列,即多个值通过聚合函数运算统计到一起,但是如何将不同条件的值统计到不同列中呢,即按条件统计到多个列中。举个栗子:
YEAR | TYPE | VALUE |
2015 | 1 | 100 |
2015 | 2 | 200 |
2016 | 1 | 150 |
2016 | 2 | 300 |
2016 | 3 | 100 |
转为:
YEAR | TYPE1 | TYPE2 | TYPE3 |
2015 | 100 | 200 | 0 |
2016 | 150 | 300 | 100 |
这时候我们除了用到GROUP BY之外还需要CASE WHEN,SQL如下:
SELECT year, SUM(CASE WHEN type=1 THEN value ELSE 0 END) as type1, SUM(CASE WHEN type=2 THEN value ELSE 0 END) as type2, SUM(CASE WHEN type=3 THEN value ELSE 0 END) as type3, FROM table_test GROUP BY year
小小的知识点,记录下来并分享给有需要的人。
SQL分组多列统计(GROUP BY后按条件分列统计)的更多相关文章
-
【数据库】SQL分组多列统计(GROUP BY后按条件分列统计)
select whbmbh ,zt,1 as tjsl from fyxx group by zt,whbmbh select whbmbh,sum(case zt when '有效' then 1 ...
-
利用mysql中的SQL_CALC_FOUND_ROWS 来实现group by后的记录数统计
最近正在做一个显示消息的列表页,列表页中需要根据一个字段来分组显示.并且需要一个分页的效果. 大家也知道group by 后的数据是每一组一行记录,统计分组后的总的记录数又不能用count,所以SQL ...
-
实习笔记-2:sql 分组不一定要group by
今天在公司写代码的时候,遇到一个sql语句构建问题. 情形是这样的: 我需要获取不同小组下前N条记录. select top 10 * from dbo.Topic where GroupID in ...
-
SQL 分组 加列 加自编号 自编号限定 分类: SQL Server 2014-11-25 15:41 283人阅读 评论(0) 收藏
说明: (1)日期以年月形式显示:convert(varchar(7),字段名,120) , (2)加一列 (3)自编号: row_number() over(order by 字段名 desc) a ...
-
SQL Server将列以分隔符分割后存到临时表
begin if object_id('tempdb..#t') is not null drop table #t; create table #t ( filepath ) ); declare ...
-
[转]group by 后使用 rollup 子句总结
group by 后使用 rollup 子句总结 一.如何理解group by 后带 rollup 子句所产生的效果 group by 后带 rollup 子句的功能可以理解为:先按一定的规则产生多种 ...
-
sql 分组后显示每组的前几条记录
sql 分组后显示每组的前几条记录 如 表中记录是 code serialno A1 1 ...
-
sql 分组统计查询并横纵坐标转换
关于sql 分组统计查询,我们在做报表的时候经常需要用到;今天就在这里整理下; 先附上一段sql代码: if object_id(N'#mytb',N'U') is not null drop tab ...
-
ysql常用sql语句(12)- group by 分组查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
随机推荐
-
Download Oracle Forms 6i
To download Oracle Forms Developer 6i from Oracle click this link http://download.oracle.com/otn/nt/ ...
-
C#如果把A.new()编译成new A()
缘由 对于初次接触某个第三方库的C#开发者,假如要调用里面一个方法,发现需要一个A类型的实例作为参数,怎么获得这个实例呢? 我想大多数人会先尝试new A吧: 如果没有,可能会尝试输入A.看看有没可能 ...
-
Java JSON、XML文件/字符串与Bean对象互转解析
前言 在做web或者其他项目中,JSON与XML格式的数据是大家经常会碰见的2种.在与各种平台做数据对接的时候,JSON与XML格式也是基本的数据传递格式,本文主要简单的介绍JSON/XML ...
-
javascript中的光标
最近项目中要做一个键盘操作,光标移动的功能:增强用户体验:问朋友查资料了解到这方面的知识:整理备忘: 1.IE使用textRange对象,其他使用selectionStart selectionEnd ...
-
apache配置虚拟主机的三种方式
Apache 配置虚拟主机三种方式 一.基于IP 1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP: [root@localhos ...
-
同一台电脑上安装两个tomcat服务器
1.下载免安装版tomcat,解压成tomcat1.tomcat2: 2.修改tomcat2中conf下server.xml文件如下: <Server port="8005" ...
-
Linux网络那点事
跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 之前的之前说过网络自连接的配置(CentOS服务器网络配置:http://ww ...
-
【原】linux学习路径
1. <<The Linux Command Line A Complete Introduction>> 2. <<Advanced Programming ...
-
CCNA学习与实验指南——第2章 网络互联和参考模型
大三下学期的这个时间段,不知道是不是社会就业的恐惧与自身前途的迷茫所带来的压力,身边的同学一个个的整天奔赴考研室学的好不努力,空荡荡的宿舍只剩我一人孑然聊聊甚是索然无味,亦或许是即将毕业的压力等接踵而 ...
-
nginx配置文件和一些用法
fastcgi配置: location ~ \.php$ { #fastcgi_pass unix:///tmp/php-cgi.sock; fastcgi_pass unix__tmp_php5_c ...