
sql语句查询每日数据中的最大值
有一个表只有两列data_timedata_data,data_time中是一个月内每天从0点到23点的时间,例如2009-03-0100:04:56,data_data...
有一个表只有两列
data_time data_data,data_time中是一个月内每天从0点到23点的时间,例如2009-03-01 00:04:56,data_data是每小时收集的数据,现要查询一个月内每天收集数据中的最大值,该怎样查询?
查询结果最好只显示data_time精确到秒的具体时间和data_data每日的最大值,谢谢各位啦!急用啊! 展开
data_time data_data,data_time中是一个月内每天从0点到23点的时间,例如2009-03-01 00:04:56,data_data是每小时收集的数据,现要查询一个月内每天收集数据中的最大值,该怎样查询?
查询结果最好只显示data_time精确到秒的具体时间和data_data每日的最大值,谢谢各位啦!急用啊! 展开
3个回答
展开全部
假设你表中的DATA_TIME字段是日期类型,如果是字符类型,需要对下列语句做修改
SQL SERVER
SELECT CONVERT(CHAR(8),DATA_TIME,112) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY CONVERT(CHAR(8),DATA_TIME,112)
ORDER BY 1
ORACLE
SELECT TRUNC(DATA_TIME) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY TRUNC(DATA_TIME)
ORDER BY 1
;
按照你的要求的话是不是要保留每条记录,然后每条记录再显示出当日的最大值?
如果是这样,SQL SERVER中需要原表和每日的最大值的嵌套表做关联;ORACLE用分析函数,下面是ORACLE的语句
SELECT TO_CHAR(DATA_TIME,'YYYY-MM-DD HH24:MI:SS') 时间,
DATA_DATA "当前值",
MAX(DATA_DATA) OVER(PARTITION BY TRUNC(DATA_TIME))"当日最大值"
FROM TABLE_NAME
ORDER BY 1;
SQL SERVER
SELECT CONVERT(CHAR(8),DATA_TIME,112) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY CONVERT(CHAR(8),DATA_TIME,112)
ORDER BY 1
ORACLE
SELECT TRUNC(DATA_TIME) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY TRUNC(DATA_TIME)
ORDER BY 1
;
按照你的要求的话是不是要保留每条记录,然后每条记录再显示出当日的最大值?
如果是这样,SQL SERVER中需要原表和每日的最大值的嵌套表做关联;ORACLE用分析函数,下面是ORACLE的语句
SELECT TO_CHAR(DATA_TIME,'YYYY-MM-DD HH24:MI:SS') 时间,
DATA_DATA "当前值",
MAX(DATA_DATA) OVER(PARTITION BY TRUNC(DATA_TIME))"当日最大值"
FROM TABLE_NAME
ORDER BY 1;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-04-16
展开全部
SELECT MAX(DATA_DATA) FROM TABLENAME WHERE DATA_TIME >='2009-03-01' AND DATA_TIME <='2009-03-31'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select data_time,max(data_data) as data_data from 表名 group by data_time
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询