0

重複の可能性:
時間を時間または10分でグループ化する方法

MSSQLで次の結果が得られます。

ここに画像の説明を入力してください

次のクエリから:

SELECT [DATESTAMP],[ZONE],[ALARM] 
FROM [UNIT].[dbo].[LOG] 
WHERE [DATESTAMP] BETWEEN @StartDate AND @EndDate 
    AND [ALARM] ='ERROR' 
    AND [ZONE] IN ('BOX 11','BOX 12') 
ORDER BY DATESTAMP DESC

行2、5、9、13、17、19、20のみを取得するようにクエリを変更するにはどうすればよいですか?

意味グループ内の最初の(最も古い)行のみが約1分に及ぶことを意味します。そのグループ内では、15分を超える頻度でエラーのバーストは発生しませんが、よろしく、Freewheelin

4

2 に答える 2

0

了解しましたが、特定の分ごとに最も早いエントリが必要ですよね? もしそうなら、これを試してください:

SELECT
    DateStamp,
    ZONE,
    Alarm
FROM
    [UNIT].[dbo].[LOG]  
    JOIN 
    (   SELECT 
            DateMinute = DATEADD(second, -DATEPART(second, DateStamp), DateStamp),
            Earliest = MIN(DateStamp)
        FROM
            [UNIT].[dbo].[LOG]  
        GROUP BY
            DATEADD(second, -DATEPART(second, DateStamp), DateStamp)
    ) X ON [UNIT].[dbo].[LOG].DateStamp = X.Earliest
于 2012-12-14T21:11:59.190 に答える
0

で終わった:

SELECT  MIN([DATESTAMP]) as FirstOccurance FROM ....
WHERE ....
....
GROUP BY DATEPART(minute, [DATESTAMP])
ORDER BY FirstOccurance DESC

-ありがとう、みんな

于 2012-12-14T22:50:40.763 に答える