TdEngineQueryMapper.xml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineQueryMapper">
  6. <!-- 根据时间戳查询数据 -->
  7. <select id="selectByTimestamp" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectDO"
  8. resultType="Map">
  9. SELECT * FROM ${dataBaseName}.${tableName}
  10. WHERE ${fieldName} BETWEEN #{startTime} AND #{endTime}
  11. </select>
  12. <!-- 获取时间范围内的数据条数 -->
  13. <select id="getCountByTimestamp" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectDO"
  14. resultType="java.util.Map">
  15. SELECT COUNT(0) AS count
  16. FROM ${dataBaseName}.${tableName}
  17. WHERE ${fieldName} BETWEEN #{startTime} AND #{endTime}
  18. </select>
  19. <!-- 获取最新数据 -->
  20. <select id="getLastData" resultType="java.util.Map">
  21. SELECT LAST(time), *
  22. FROM ${tableName}
  23. WHERE device_id = #{deviceId}
  24. </select>
  25. <!-- 根据标签获取最新数据 -->
  26. <select id="getLastDataByTags" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TagsSelectDO"
  27. resultType="Map">
  28. SELECT LAST(*)
  29. FROM ${dataBaseName}.${stableName}
  30. GROUP BY ${tagsName}
  31. </select>
  32. <!-- 获取历史数据 -->
  33. <select id="getHistoryData" resultType="java.util.Map"
  34. parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
  35. SELECT ${fieldName} AS data, time
  36. FROM ${dataBaseName}.${tableName}
  37. WHERE time BETWEEN #{startTime} AND #{endTime}
  38. AND ${fieldName} IS NOT NULL
  39. ORDER BY time DESC
  40. LIMIT #{params.rows} OFFSET #{params.page}
  41. </select>
  42. <!-- 获取实时数据 -->
  43. <select id="getRealtimeData" resultType="java.util.Map"
  44. parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
  45. SELECT ${fieldName}, time
  46. FROM ${dataBaseName}.${tableName}
  47. </select>
  48. <!-- 获取聚合数据 -->
  49. <select id="getAggregateData" resultType="java.util.Map"
  50. parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
  51. SELECT ${aggregate}(${fieldName})
  52. FROM ${dataBaseName}.${tableName}
  53. WHERE ts BETWEEN #{startTime} AND #{endTime} INTERVAL (${interval})
  54. LIMIT #{num}
  55. </select>
  56. <!-- 获取历史数据条数 -->
  57. <select id="getHistoryCount" resultType="java.lang.Long">
  58. SELECT COUNT(time)
  59. FROM ${dataBaseName}.${tableName}
  60. WHERE time BETWEEN #{startTime} AND #{endTime}
  61. AND ${fieldName} IS NOT NULL
  62. </select>
  63. </mapper>