(使用 Microsoft SQL Server 的 SQL Server 14.0.3421.10 )我知道你們總是樂于助人,在這種情況下,我什至不知道如何谷歌,因為 SQL 不是我的一杯茶。代碼如下
declare @refdt as datetime
declare @loaddt as datetime
set @refdt='2022-04-01 01:00:00:000'
set @loaddt='2022-04-01 02:00:00:000'
select dt, id, Unit, MIN(pmVoltage) as[test]
from energymeter15min
where (id LIKE '3_4237') and (dt BETWEEN @refdt and @loaddt)
group by dt, Unit, pmVoltage, id
order by Unit, dt
此查詢的結果如下所示

但我只想像這樣在@refdt 和@loaddt 之間的時間跨度內顯示pmVoltage 的MIN 值

uj5u.com熱心網友回復:
試試這個,讓我知道它是否有效。對于每個具有最低 pmVoltage 值的 Unit/id 組合,它應該只顯示一條記錄。
declare @refdt as datetime;
declare @loaddt as datetime;
set @refdt='2022-04-01 01:00:00:000';
set @loaddt='2022-04-01 02:00:00:000';
With data AS(
select dt, id, Unit, pmVoltage test
, ROW_NUMBER() OVER(Partition BY Unit, id ORDER BY pmVoltage) rowNum
from energymeter15min
where id = '3_4237'
and dt BETWEEN @refdt and @loaddt
)
select dt, id, Unit, test
from data
where rowNum = 1
uj5u.com熱心網友回復:
嘗試將 pmVoltage 從您的 GROUP BY 中取出 - 最小值由 group by 確定,它不應該在其中。
group by dt, Unit, id
order by Unit, dt
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457452.html
