统计,求指定时段内的平均值、最大(最小)值,以及最值出现的时刻
来源:互联网 发布:禁毒知识网络竞赛 编辑:程序博客网 时间:2024/05/20 15:59
题:
/* ============================================================ */ /* Table: t_scadaTMeas */ /* 分组,求最大(最小)值,以及该值出现的时刻。若最值多次出现,取第一次出现的时刻。 */ /* ============================================================ */ create table t_scadaTMeas ( dtScadaTime datetime not null, nAloge float null , iEquimentId integer not null, cMeascode character(8) not null, constraint PK_T_SCADAHOURMEAS primary key (dtScadaTime, iEquimentId, cMeascode) ) go insert into t_scadaTMeas values('2007/11/20 01:01:00', 1, 1, 'a1') insert into t_scadaTMeas values('2007/11/20 01:01:03', 3, 1, 'a1') insert into t_scadaTMeas values('2007/11/20 01:59:03', 3, 1, 'a1') insert into t_scadaTMeas values('2007/11/20 05:01:00', 3, 1, 'a1') insert into t_scadaTMeas values('2007/11/20 05:01:03', 2, 1, 'a1') insert into t_scadaTMeas values('2007/11/20 05:59:03', 1, 1, 'a1') insert into t_scadaTMeas values('2007/11/20 03:11:00', 1, 2, 'a2') insert into t_scadaTMeas values('2007/11/20 03:21:03', 2, 2, 'a2') insert into t_scadaTMeas values('2007/11/20 03:59:03', 1, 2, 'a2') insert into t_scadaTMeas values('2007/11/20 23:01:00', 3, 3, 'a3') insert into t_scadaTMeas values('2007/11/20 23:01:03', 3, 3, 'a3') insert into t_scadaTMeas values('2007/11/20 23:59:03', 3, 3, 'a3') /* === 查询结果 cMeascode iEquimentId ScadaTime max_val time_at_maxVal min_val time_at_minVal a1 1 '2007/11/20 01:00:00' 3 '2007/11/20 01:01:03' 1 '2007/11/20 01:01:00' a1 1 '2007/11/20 05:00:00' 3 '2007/11/20 05:01:00' 1 '2007/11/20 05:59:03' a2 2 '2007/11/20 03:00:00' 2 '2007/11/20 03:21:03' 1 '2007/11/20 03:11:00' a3 1 '2007/11/20 23:00:00' 3 '2007/11/20 23:01:00' 3 '2007/11/20 23:01:00' */解:select
b.cMeascode,b.iEquimentId,b.ScadaTime+':00:00',
max_val=b.MaxnAloge,
[time_at_maxVal]=max(case when a.nAloge=b.MaxnAloge then a.dtScadaTime end),
min_val=b.MinnAloge,
[time_at_minVal]=min(case when a.nAloge=b.MinnAloge then a.dtScadaTime end)
from
t_scadaTMeas a
join
(select cMeascode,iEquimentId,ScadaTime=convert(varchar(13),dtScadaTime,120),max(nAloge)MaxnAloge,min(nAloge)MinnAloge
from t_scadaTMeas group by cMeascode,iEquimentId,convert(varchar(13),dtScadaTime,120)) b
on a.cMeascode=b.cMeascode and a.iEquimentId=b.iEquimentId and convert(varchar(13),a.dtScadaTime,120)=b.ScadaTime and a.nAloge in(b.MaxnAloge,b.MinnAloge)
group by b.cMeascode,b.iEquimentId,b.ScadaTime,b.MinnAloge,b.MaxnAloge
/*
cMeascode iEquimentId max_val time_at_maxVal min_val time_at_minVal
--------- ----------- ------------------- ---------------------- ----------------------- ---------------------- -----------------------
a1 1 2007-11-20 01:00:00 3 2007-11-20 01:01:03.000 1 2007-11-20 01:01:00.000
a1 1 2007-11-20 05:00:00 3 2007-11-20 05:01:00.000 1 2007-11-20 05:59:03.000
a2 2 2007-11-20 03:00:00 2 2007-11-20 03:21:03.000 1 2007-11-20 03:11:00.000
a3 3 2007-11-20 23:00:00 3 2007-11-20 23:01:00.000 3 2007-11-20 23:01:00.000
(4 個資料列受到影響)
*/
- 统计,求指定时段内的平均值、最大(最小)值,以及最值出现的时刻
- 统计 最小 、最大、平均值
- 求最大最小及平均值
- 假设淘宝网上某商品A在任一时刻t内若有人浏览,则该商品在下一时刻t+1内无人浏览的概率为0.35(即下一时刻的浏览情况仅与当前时段相关)
- 一个数列,去掉最大和最小的数,求剩余的数的平均值
- 利用函数逐行对表进行求最大数、最小数、N个最大数的平均值、N个最小数的平均值
- C#程序设计(四)----十个数求最大最小平均值
- 求二叉树中节点最大(最小)的值
- 去掉最大和最小,再求平均值
- SQL求平均值以及总和的写法
- 习题:求1-100内奇、偶数的个数、和值与平均值
- 求二维数组周边值的平均值
- 最大 最小 平均值(文件)
- 最小 最大 平均值(文件)
- Linq 求和,求平均值,求最大,求最小,分组,计数
- 统计某个时段内连续登录N天以上的独立用户IP数量
- sql统计查询——求不同类别的平均值
- 求三个数的最大 最小 中间值
- EXISTS和in
- 我的博客
- Jack Wu -- Implementation Search help EXIT
- VC 自定义消息
- 实战攻略:ARP病毒发起欺骗攻击解决方法
- 统计,求指定时段内的平均值、最大(最小)值,以及最值出现的时刻
- JDK 1.5 HashMap 源代码读解
- 设置MFC窗口透明
- #pragma pack() 和sizeof
- HtmlCleaner2.0
- Windows管道技术 [转]
- microRNA Introdiction
- 在ListView 的Column Header上显示任意图片
- ADO开发中如何得到表格字段名