实时数据表分组查询 - 按15分钟间隔,排除整点和15分钟
可以使用数据库的SQL语句来创建实时数据表,并按指定时间段和分组条件查询数据。\n\n首先,创建实时数据表,包含字段tag_id、real_time和real_value。可以使用以下SQL语句创建表:\n\nsql\nCREATE TABLE realtime_data (\n tag_id INT,\n real_time DATETIME,\n real_value DECIMAL(10, 2)\n);\n\n\n然后,每两秒写入一组数据到实时数据表。这可以通过程序或者定时任务来实现,具体的实现方式取决于你使用的数据库和编程语言。\n\n接下来,按指定时间段和分组条件查询数据。假设你使用的是MySQL数据库,可以使用以下SQL语句来查询数据:\n\nsql\nSELECT \n DATE_FORMAT(real_time, '%Y-%m-%d %H:%i:00') AS time_group,\n AVG(real_value) AS avg_value\nFROM \n realtime_data\nWHERE \n real_time >= '2020-10-11 10:11:00' AND\n real_time <= '2020-10-15 10:11:00' AND\n TIME(real_time) NOT IN ('00:00:00', '00:15:00', '00:30:00', '00:45:00', '01:00:00', '01:15:00', '01:30:00', '01:45:00', '02:00:00', '02:15:00', '02:30:00', '02:45:00', '03:00:00', '03:15:00', '03:30:00', '03:45:00', '04:00:00', '04:15:00', '04:30:00', '04:45:00', '05:00:00', '05:15:00', '05:30:00', '05:45:00', '06:00:00', '06:15:00', '06:30:00', '06:45:00', '07:00:00', '07:15:00', '07:30:00', '07:45:00', '08:00:00', '08:15:00', '08:30:00', '08:45:00', '09:00:00', '09:15:00', '09:30:00', '09:45:00', '10:00:00', '10:15:00', '10:30:00', '10:45:00')\nGROUP BY \n time_group\nORDER BY \n time_group;\n\n\n以上SQL语句会按照起始时间累加15分钟进行分组,并计算每个分组的平均值。其中,realtime_data是实时数据表的表名,real_time是存储时间的字段,real_value是存储数值的字段。\n\n注意,上述SQL语句中的时间段和排除的时间点是示例数据,你可以根据实际需求进行修改。另外,如果你使用的是其他数据库,可能需要根据具体的语法进行调整。
原文地址: https://www.cveoy.top/t/topic/p9vU 著作权归作者所有。请勿转载和采集!