GROUP BY provides a way of grouping events based on one or more specified attributes to perform aggregate operations.
GROUP BY allows users to aggregate values of multiple events based on the given group-by fields.
The syntax for the group by with aggregate function is:
INSERT INTO <output stream>
SELECT <aggregate function>( <parameter>, <parameter>, ...) as <attribute1 name>, <attribute2 name>, ...
FROM <input stream> WINDOW <window name>(...)
GROUP BY <attribute1 name>, <attribute2 name>, ...;
Here the group by attributes should be defined next to the
GROUP BY keyword separating each attribute by a comma.
Query to calculate the average
deviceID combination, from the events arrived from
TempStream, during the last 10 minutes time-window in a sliding manner.
INSERT INTO AvgTempStream
SELECT roomNo, deviceID, avg(temp) AS avgTemp
FROM TempStream WINDOW SLIDING_TIME(10 min)
GROUP BY roomNo, deviceID;