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语句: 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * fr ...
- 免费的sql工具_免费SQL工具
免费的sql工具 Adminer ApexSQL CI/CD toolkit ApexSQL Compare ApexSQL Complete ApexSQL Decrypt ApexSQL Plan ...
- 用sql统计vintage,滚动率,迁移率,逾期率
获取代码请移步:用sql统计vintage,滚动率,迁移率,逾期率
- Oracle-Oracle SQL Report (awrsqrpt.sql/awrsqrpi.sql)生成指定SQL的统计报表
概述 我们知道,Oracle提供的脚本均位于下列目录下 $ORACLE_HOME/rdbms/admin 其中, awrsqrpt.sql用来分析某条指定的SQL语句,通过awrsqrpt.sql脚本 ...
- mysql count if语句_COUNT分组条件去重的sql统计语句示例(mysql)
常规情况下的sql分组统计为: select count(1) from 表 where 条件 group by 字段; 但是有时往往需要添加不同的条件已经去重的统计以上语句就不能满足需求. 解决方案 ...
- DBLINK 无统计信息导致SQL变慢
今天重庆ORACLE社区有位哥们提问,为啥索引重建(alter index rebuil)之后,SQL变慢了,以前15秒就可以完成,现在要2分多种,于是问他要了执行计划 SQL> set aut ...
- SpringBoot 如何统计、监控 SQL运行情况?
点击关注公众号,实用技术文章及时了解 来源:juejin.cn/post/7062506923194581029 1 基本概念 Druid 是Java语言中最好的数据库连接池. 虽然 HikariCP ...
- execution 排除_使用SQL Server 2016 Live Execution统计信息对SQL查询性能进行故障排除
execution 排除 SQL Server Management Studio a graphical interactive that allows you to interact with t ...
- 【每日一练:SQL】写一条SQL统计连续三个月金额大于0及每个月的金额
写一条SQL统计连续在三个月金额大于0及展现每个月的金额 需求: 下面是表FEE,字段是month(月份),service_id(电话号码),fee(出帐金额),请参看下面要求: Month ...
最新文章
- [node 工具] 用 Node.js 将 bugzilla 上的 bug 列表导入到 excel 表格在线版本之一(server 端)...
- 添加gitignore文件后使其生效
- 【腾讯面试题】MySQL常用数据库引擎
- VS2010代码提示功能配置:Visual Assist X 10.7.1912.0
- 不是世界不好,而是你见得太少
- 【游戏开发】C 游戏编程实例
- inline函数的作用
- 你理解这些Cisco NAT分类和原理吗
- android 中tools命名空间的全解
- 马哥linux第30期,马哥Linux第三周
- 南邮计算机考研复试经验,我的一点建议——南京邮电大学考研经验_跨考网
- [英文邮件写作技巧] 表达感谢,提出问题,描述附件
- 思维导图网页版推荐,这两个网站建议收藏
- 深圳计算机专业中专学校,深圳最好的中专学校有哪些 十大中专学校排名
- 【Typescript专题】之类型进阶
- centos7FastDFS分布式安装部署
- 与谷歌AI领军科学家一较高下的梦想如何反应了中国对科技突破的追求?
- 绿联扩展坞拆解_『 元作 』配件专家——优越者Type-C 十合一扩展坞拆解+试用评测!【下集】...
- Bootstrap 一篇就够 快速入门使用(中文文档)
- Java——继承、方法覆盖