sql语句,同时查询某记录的平均值,最大值,最小值及最大值时间,最小值时间。
数据表格式字段日期,人名,数据1,[数据1时间],数据2,[数据2时间]。要求:按人名分类查询,avg(数据1),avg(数据2),max(数据1)及对应的[数据1时间]...
数据表格式
字段 日期,人名,数据1,[数据1时间],数据2,[数据2时间]。
要求:按人名分类查询,avg(数据1),avg(数据2),max(数据1)及对应的[数据1时间],min(数据2)及对应的[数据2时间]。
能否用一个sql语句写完,谢谢。 展开
字段 日期,人名,数据1,[数据1时间],数据2,[数据2时间]。
要求:按人名分类查询,avg(数据1),avg(数据2),max(数据1)及对应的[数据1时间],min(数据2)及对应的[数据2时间]。
能否用一个sql语句写完,谢谢。 展开
3个回答
展开全部
select a.*
, max_data1, data1_time
, min_data2, data2_time
from (
select
username,
avg(data1) as avg_data1,
avg(data2) as avg_data2
from tb_table a
group by username
) as a
join (
select
username,
data1 as max_data1,
min(data1_time) as data1_time
from tb_table b
where 1=1
and not exists (select 1 from tb_table b0
where b0.username = b.username
and b0.data1 > b.data1)
group by username, data1
) as a1 on a1.username = a.username
select
username,
data2 as min_data2,
min(data2_time) as data2_time
from tb_table b
where 1=1
and not exists (select 1 from tb_table b0
where b0.username = b.username
and b0.data2 < b.data2)
group by username, data2
) as a2 on a2.username = a.username
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ORACLE 可以直接函数取
greatest(repdate,repcreatedate,RepAuditTime,printime)
mssqlserver可能先列转行求分组最大,没有测试环境,忘记了
greatest(repdate,repcreatedate,RepAuditTime,printime)
mssqlserver可能先列转行求分组最大,没有测试环境,忘记了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询