首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求教个sql语句,该如何解决

2014-01-15 
求教个sql语句表结构如下:RecordDateValue1Value22013-01-10 11:20:305.06.0 2013-01-10 11:20:327.08.0 2

求教个sql语句
表结构如下:

RecordDate            Value1  Value2  
2013-01-10 11:20:30   5.0     6.0 
2013-01-10 11:20:32   7.0     8.0 
2013-01-11 12:20:30   4.0     3.0 
2013-01-11 12:20:32   9.0     5.0 
..................


其中,RecordDate字段以秒计算,一天估计有很多数。有个查询语句想了很久都不知道怎么实现,请大家帮忙看看。
1、查询一年中每个月的平均值、最大值或者最小值

比如2013年,期待结果,数据假定:
月份    max  min everage
1       9    2    5
2       9    2    5
3       9    2    5
4       9    2    5
5       9    2    5
6       9    2    5
7       9    2    5
8       9    2    5
9       9    2    5
10      9    2    5
11      9    2    5
12      9    2    5



[解决办法]

----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2014-01-13 13:22:12
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
--Dec 28 2012 20:23:12 
--Copyright (c) Microsoft Corporation
--Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([RecordDate] datetime,[Value1] numeric(2,1),[Value2] numeric(2,1))
insert [huang]
select '2013-01-10 11:20:30',5.0,6.0 union all
select '2013-01-10 11:20:32',7.0,8.0 union all
select '2013-01-11 12:20:30',4.0,3.0 union ALL
select '2013-01-11 12:20:32',9.0,5.0 union ALL

select '2013-02-11 12:20:32',9.0,5.0 union ALL
select '2014-01-11 12:20:32',9.0,5.0
--------------开始查询--------------------------

select SUBSTRING(CONVERT(VARCHAR(10),[RecordDate],120),PATINDEX('%-%',CONVERT(VARCHAR(10),[RecordDate],120))+1,2)[月份],MAX([Value1])MaxValue1,MIN([Value1])MinValue1,AVG([Value1])AvgValue
from [huang]
WHERE LEFT(CONVERT(VARCHAR(10),[RecordDate],120),4)='2013'
GROUP BY SUBSTRING(CONVERT(VARCHAR(10),[RecordDate],120),PATINDEX('%-%',CONVERT(VARCHAR(10),[RecordDate],120))+1,2)
----------------结果----------------------------
/* 
月份   MaxValue1                               MinValue1                               AvgValue
---- --------------------------------------- --------------------------------------- ---------------------------------------
01   9.0                                     4.0                                     6.250000
02   9.0                                     9.0                                     9.000000


*/

热点排行