sql 统计用的sql
mh:工时 mhtype:工时类型(6种)
字段:userid mhtype mh
001 1 5
001 1 3
001 2 4
001 3 9
002 5 5
002 6 7
002 3 4
002 3 9
要求统计出每个人每一类工时的总合
结果要求如下格式
userid mhtype1 mhtype2 mhtype3 mhtype4 mhtype5 mhtype6 allmh
001 8 4 9 0 0 0 21
002 0 0 13 0 5 7 25
-------------------
create table lk4(userid mediumint(3) unsigned zerofill not null,mhtype int not null,mh int not null);insert into lk4 values(001,1,5),(001,1,3),(001,2,4),(001,3,9),(002,5,5),(002,6,7),(002,3,4),(002,3,9);select userid,sum((case when mhtype=1 then mh else 0 end )) as 'mhtype1',sum((case when mhtype=2 then mh else 0 end )) as 'mhtype2',sum((case when mhtype=3 then mh else 0 end )) as 'mhtype3',sum((case when mhtype=4 then mh else 0 end )) as 'mhtype4',sum((case when mhtype=5 then mh else 0 end )) as 'mhtype5',sum((case when mhtype=6 then mh else 0 end )) as 'mhtype6',sum(mh) as 'allmh'from lk4 group by userid;结果:
+--------+---------+---------+---------+---------+---------+---------+-------+
| userid | mhtype1 | mhtype2 | mhtype3 | mhtype4 | mhtype5 | mhtype6 | allmh |
+--------+---------+---------+---------+---------+---------+---------+-------+
| 001 | 8 | 4 | 9 | 0 | 0 | 0 | 21 |
| 002 | 0 | 0 | 13 | 0 | 5 | 7 | 25 |
+--------+---------+---------+---------+---------+---------+---------+-------+
2 rows in set (0.00 sec)
*******************************
数据结构如下
id name area
01 a 河北
02 b 山东
03 c 河北
04 d 陕西
05 e 河北
06 f 山东
也即每个用户都有id,name,area
现要求如下:
按地区聚合并统计用户数、显示各用户详细情况
大概类似于下面的结果:
地区 总用户数 详细用户
河北 3 (01,a),(03,c),(05,e)
山东 2 (02,b),(06,f)
陕西 1 (04,d)
select area,count(*),group_concat('(',id,',',name,')')
from tb
group by area
************

这是源数据,根据不同的adminid,算出每个adminid有多少条数据,并且state为0的有几条,为1的有几条
返回结果是这样的:
adminid total state0 state1
1 100 90 10
2 111 55 56
total是state的总数,state0是state=0的数量,state1是state=1的数量,adminid是adminid
然后将以下得到的数据全部插入表2内:
表2字段为:
adminid s_total s_state0 s_state1
insert into tb2
select adminid,count(*) as total,
count(case when state=0 then 1 end) as state0,
count(case when state=1 then 1 end) as state1
from tb
group by adminid
***********
一。以产品编码为分类进行数量的汇总
|
1
2
3
|
select 产品编码,sum(购买数量)from 表结构group by 产品编码 |
二。在汇总的基础上,我要对每个产品编码按发货地区进行分类汇总。
|
1
2
3
|
select 产品编码,发货地区,sum(购买数量)from 表结构group by 产品编码,发货地区 |
sql 统计用的sql的更多相关文章
- sql 统计常用的sql
统计常用的sql 统计常用的sql语句: 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:s ...
- MS SQL 统计信息浅析上篇
统计信息概念 统计信息是一些对象,这些对象包含在表或索引视图中一列或多列中的数据分布有关的统计信息.数据库查询优化器使用这些统计信息来估计查询结果中的基数或行数. 通过这些基数估计,查询优化器可以生成 ...
- MS SQL统计信息浅析下篇
MS SQL统计信息浅析上篇对SQL SERVER 数据库统计信息做了一个整体的介绍,随着我对数据库统计信息的不断认识.理解,于是有了MS SQL统计信息浅析下篇. 下面是我对SQL Serve ...
- SQL统计——按照各种维度
在SQLserver中可以按照各种维度进行统计,实现与EXCLE一样强大的功能. --========================== --Blog:<奔跑的金鱼> --Desc:&l ...
- sql统计字符串出现次数技巧
在牛客网上看到一道题,感觉挺有趣,是用sql统计字符串出现的次数. 这里提供一种思路,比如统计字符串A中子串B的出现次数: SELECT (LENGTH(A) - LENGTH(REPLACE(A, ...
- ORACLE 统计文件后缀SQL
ORACLE 统计文件后缀SQL查询语句 select lower(substr(file_name,instr(file_name, '.', -1),length(file_name))),cou ...
- SQL Server中的SQL语句优化与效率问题
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...
- SQL Server Profiler监控SQL Server性能
全面掌握SQL Server Profiler 1. 原理与相关概念介绍 SQL Server Profiler,大家已经非常熟悉.常常在性能优化中使用,本文档详细介绍SQL Server ...
- 整理:sql语句优化之SQL Server
. 增加服务器CPU个数;但是必须明白并行处理串行处理更需要资源例如内存.使用并行还是串行程是MsSQL自动评估选择的.单个任务分解成多个任务,就可 以在处理器上运行.例如耽搁查询的排序.连接.扫描和 ...
随机推荐
- 【POJ2104】kth num
You are working for Macrohard company in data structures department. After failing your previous tas ...
- [转]用Python做一个自动生成读表代码的小脚本
写在开始(本片文章不是写给小白的,至少你应该知道一些常识!) 大家在Unity开发中,肯定会把一些数据放到配置文件中,尤其是大一点的项目,每次开发一个新功能的时候,都要重复的写那些读表代码.非常烦.来 ...
- mysql 权限管理
参考: http://www.cnblogs.com/Richardzhu/p/3318595.html 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内 ...
- [JavaScript] js验证身份证
function checkIdCard(){ var vcity={11:"北京",12:"天津",13:"河北",14:&quo ...
- 【更新链接】U盘启动制作工具(UDTOOL) v3.0.2014.0427
[校验值] 文件: UDTOOLV3_Setup.exe大小: 525 MB版本: 3.0.2014.0427时间: 2014年4月27日MD5: 2E5187B7D9081E8A69B4DC45C8 ...
- Chp3: Stacks and Queue
1. 说明如何用两个队列来实现一个栈,并分析有关栈操作的运行时间. 解法:1.有两个队列q1和q2,先往q1内插入a,b,c,这做的都是栈的push操作.2.现在要做pop操作,即要得到c,这时可以将 ...
- C语言的左位移能不能超过8位?
C语言的左位移能不能超过8位?比如b=a<<20; 这样可以不?如果可以,一个字节只有8个位,左移20位是不是连右边其它字节的12个位(20-8)也一起左移? 字符变量左移八次后,所有的位 ...
- JS动态特性
var arr=[]; arr['js']='jquery'; arr['css']='oocss'; var obj={}; for(var i in arr) { obj[i]=arr[i]; } ...
- web.xml的说明
<!--DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. Copyright 2000-2007 Sun Microsystems ...
- MySQL复制应用中继日志解析
前言:SQL线程应用中继日志,在binlog_format是row格式的时候,是居于主键更新,下面结合一张图来证明 1.从一个大神那边得到一张图片,SQL线程应用中继日志流程,下面就实验验证一下:(P ...