SQL 查询分析:使用递归 CTE 分组数据并按时间排序
这个 SQL 查询的目的是从表 zdh_point_realdata 中选择一些特定的列,并且根据日期时间进行分组和排序。\n\n在查询中使用了一个递归的公共表表达式(WITH recursive),该表命名为 c。公共表表达式 c 通过递归地选择从 1 开始的连续数字,直到满足条件 n < (SELECT TIMESTAMPDIFF(MINUTE, '2023-07-27 00:06:00', '2023-08-01 23:59:00') / 15) 为止。\n\n接下来,查询从表 zdh_point_realdata 和公共表表达式 c 中选择数据。它使用左连接将 zdh_point_realdata 表中的实际时间列(real_time)与公共表表达式 c 中的时间列(cTime)进行比较。如果这两个时间相等,则将 zdh_point_realdata 中的 point_value 列与公共表表达式 c 中的时间列一起选择。同时,查询还使用 WHERE 子句过滤出 uuid 等于 '42d666642f4d11eeb6f3c81f66d08e5a' 的行。\n\n最后,查询使用 GROUP BY 子句按 cTime 列进行分组,并使用 MAX 函数选择每个组的最大 point_value 值。结果按 cTime 列进行排序。\n\n总结起来,这个 SQL 查询的目的是根据特定条件从 zdh_point_realdata 表中选择数据,并根据时间进行分组和排序。
原文地址: https://www.cveoy.top/t/topic/p9vr 著作权归作者所有。请勿转载和采集!