SQL中每天的最大值-最小值

SQL中每天的最大值-最小值,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我正在使用SQL Server。我从不同的表中获取信息,我能够做到这一点 在我的表中,有每隔30分钟的sampletime列和一个value列。我想写一个查询来获取每天的差异(max-min),有什么建议吗 例如: SIGNAL NAME SAMPLETIME VALUE Spazio-Percorso 2014-03-06 15:01:50.3170000 219345 Spazio-Percorso 2014-03-06 15:31:50.326

我正在使用SQL Server。我从不同的表中获取信息,我能够做到这一点

在我的表中,有每隔30分钟的
sampletime
列和一个value列。我想写一个查询来获取每天的差异(max-min),有什么建议吗

例如:

SIGNAL NAME     SAMPLETIME                  VALUE
Spazio-Percorso 2014-03-06 15:01:50.3170000 219345  
Spazio-Percorso 2014-03-06 15:31:50.3260000 219384  
Spazio-Percorso 2014-03-06 16:01:50.3380000 219388  
Spazio-Percorso 2014-03-06 16:31:50.3460000 219388  
Spazio-Percorso 2014-03-06 17:01:50.3590000 219400  
Spazio-Percorso 2014-03-06 17:31:50.3690000 219434  
Spazio-Percorso 2014-03-06 18:01:50.3760000 219471

在本例中,所有行都来自同一天,我希望每天只有一行,并且在“值”列中希望有当天的MAX-MIN

如果您使用的是SQL Server 2008或更高版本,则可以将datetime列转换为
DATE
以去掉时间值:

SELECT 
    [SIGNAL NAME], 
    CAST(SAMPLETIME AS DATE) AS SAMPLEDATE, 
    MAX(VALUE) - MIN(VALUE) AS VALUE
FROM Table1
GROUP BY [SIGNAL NAME], CAST(SAMPLETIME AS DATE)
试试这个

SELECT [SIGNAL NAME], CAST(SAMPLETIME AS DATE) AS SAMPLEDATE, MAX(VALUE)-MIN(VALUE) As Diff_Value
FROM Table1
GROUP BY CAST(SAMPLETIME AS DATE),[SIGNAL NAME]

哪个版本的SQL Server?MSSQL管理工作室2008@FurqanSQL Server还有什么问题?您使用的是过时的management studio,这并不意味着服务器也落后两代。实际上,我不想有最大值和最小值,我想知道它们之间的差异,即max()-min()。此查询将为我提供每天的最大值减去最小值?我的意思是,由于值总是在增长,今天的最大值是明天的最小值,它是否考虑到了这一点?使用
CAST(SAMPLETIME as DATE)
在您选择的
SAMPLETIME
.thanx的交换中,为示例添加更多行,其中SAMPLETIME的日期为3月7日,这个查询是否会给我两行结果,每天一行?