我有一個帶有列通道,值和時間戳的表,以及另一個帶有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