Предполагая следующий набор данных о местоположениях и активированных датчиках (и игнорируя время windows на данном этапе для простоты):
Location1 Sensor1
Location1 Sensor1
Location1 Sensor2
Location2 Sensor1
Location2 Sensor1
Я хочу создать запрос Esper, который возвращает факт для этого Location1 было активировано несколько датчиков (Sensor1 * Sensor 2).
Хотя Location2 имело несколько активаций, все они были от одного и того же датчика (Sensor1), поэтому это не должно срабатывать.
вкратце Я хочу сказать: «Сообщите мне, когда в одном месте срабатывает более одного датчика».
В чистом виде SQL я могу добиться этого с помощью следующего запроса:
SELECT location from
(SELECT DISTINCT location, sensor FROM sensorlog) a
GROUP BY location
HAVING count(location) > 1
I Я не могу перенести это прямо в Esper, хотя, похоже, ему не нравится подзапрос.
Может ли кто-нибудь подсказать, как я могу добиться этого в Esper?
Моя первая попытка была следующей: но похоже, что это срабатывает, даже если один датчик активируется в одном месте:
select location from SensorEntityWithAsset#time(30 sec)
group by location, sensor
having count(sensor) > 1 output every 30 seconds
Большое спасибо.