我有一个带有列通道,值和时间戳的表,以及另一个带有7个其他列且具有各种数据的表。SQL - 从MAX()获取相同行的值的集合函数
我将这两者连接在一起,我想选择一小时内值列的最大值和相应行的时间戳。这是我试过的,但它(显然)不起作用。
SELECT
v.channel,
MAX(v.value),
v.timestamp,
i.stuff,
...
FROM
Values v
INNER JOIN
@Information i
ON i.type = v.type
GROUP BY channel, DATEPART(HOUR, timestamp), i.stuff, ...
我(不是很奇怪)收到以下错误:
"dbo.Values.timestamp" is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause
我应该怎么做这是否正确?
选择'DATEPART(HOUR,timestamp)'而不是? – Amber 2010-07-12 08:09:02
@不幸的是,我需要确切的时间,而不仅仅是小时部分。 – 2010-07-12 08:24:43