2016-04-04 4 views
-1

My TableGruppierung mit SQL unter Verwendung von Max, Min, Avg und Daten

Ich habe eine Tabelle, wie oben gezeigt, alle 10 Minuten ein Datensatz für jeden ChannelID in den Tisch gelegt wird.

Ich möchte die Max, Min und Avg für jeden Tag für jeden Kanal erhalten, ist das möglich?

Ich benutze MS SQL Server 2012

+0

mit u beantworten wollen Abfrage? – iOS

+0

Ja eine SQL-Abfrage. –

+0

Haben Sie etwas versucht? Ihr Titel weist darauf hin, dass Sie wissen, was zu tun ist. –

Antwort

2

Es sieht aus wie Sie wissen, was zu tun ist, so vermute ich, das einzige, was Sie fehlt, ist, dass Sie Ihre Zeit Wert von Ihrem Datum trunc benötigen, so dass jeder Der Tag wird als Gruppe erkannt. Sie können es tun, indem CAST AS DATE

SELECT cast([dateTime] as date) as Your_Date,ChannelID, 
     max(reading) as max_reading, 
     min(reading) as min_reading, 
     avg(reading) as avg_reading 
FROM YourTable 
GROUP BY cast([dateTime] as date) ,ChannelID 
+0

Danke @GordonLinoff für die Korrektur der Syntax. – sagi

+0

Fantastisch vielen Dank, ich habe ewig damit verbracht es viel zu kompliziert zu machen - perfekte Antwort –

+0

Gibt es eine Möglichkeit, das Datum als Datum 'Your_Date' zurückzugeben? Im Moment gibt es eine Zeichenfolge zurück, TIA –