江户川西瓜 2024-03-01 20:05 采纳率: 40%
浏览 7

thingsboard平台,postgres 查询问题

WITH all_dates AS (
    SELECT
        date_trunc ('day', d) AS DAY
    FROM
        generate_series (
            :startTs :: TIMESTAMP,
            :endTs :: TIMESTAMP,
            '1 day' :: INTERVAL
        ) d
),
 subquery AS (
    SELECT
        date_trunc (
            'day',
            to_timestamp (ts / 1000)
        ) AS DAY,
        COALESCE (
            MAX(
                CASE
                WHEN ABS(dbl_yb__v) = max_abs_dbl_yb__v THEN
                    dbl_yb__v
                END
            ),
            0.00
        ) AS original_value
    FROM
        (
            SELECT
                ts,
                dbl_yb__v,
                MAX(ABS(dbl_yb__v)) OVER (
                    PARTITION BY date_trunc (
                        'day',
                        to_timestamp (ts / 1000)
                    )
                ) AS max_abs_dbl_yb__v
            FROM
                ts_kv_hour
            WHERE
                entity_id = : entityId
            AND (
                key_id = : keyId1
                OR key_id = : keyId2
            )
            AND dbl_yb__v < 10000
            AND dbl_yb__v > - 10000
        ) subquery_inner
    GROUP BY
        DAY
) SELECT
    ad. DAY,
    COALESCE (sq.original_value, 0.00) AS original_value
FROM
    all_dates ad
LEFT JOIN subquery sq ON ad. DAY = sq. DAY
ORDER BY
    ad.DAY

在thingsboard 平台,不执行也不报错

  • 写回答

4条回答 默认 最新

  • Kwan的解忧杂货铺 Java领域优质创作者 2024-03-01 20:06
    关注

    江户川西瓜 晚上好🌙🌙🌙
    本答案参考通义千问

    在ThingsBoard平台上,如果您遇到了SQL查询不执行也不报错的问题,可以按照以下步骤进行排查和解决:

    1. 确认参数设置: 确保:startTs, :endTs, :entityId, :keyId1:keyId2这些参数都正确设置了有效的值。ThingsBoard中的SQL查询通常会使用变量替换实际的参数值。

    2. 检查数据源与表结构: 验证ts_kv_hour表是否存在,并且其列(如ts, dbl_yb__v, 和 key_id)的名称和类型是否与查询中使用的完全一致。

    3. 验证权限: 检查当前用户或角色是否有足够的权限来访问ts_kv_hour表并执行所需的查询操作。

    4. 测试SQL语句: 尝试在PostgreSQL数据库管理工具(例如pgAdmin或者命令行)中直接运行这个SQL查询,看是否能正常返回结果。如果在这里能够成功执行,则问题可能出在ThingsBoard平台对SQL查询的处理机制上。

    5. 查看ThingsBoard日志: 查看ThingsBoard的日志文件,查找有关此查询的任何错误信息或警告,这可能会提供关于问题的具体原因。

    6. 平台兼容性检查: 虽然上述SQL查询是基于PostgreSQL语法编写的,但确保ThingsBoard版本和配置支持这样的复杂查询。

    7. 简化查询以排除复杂度导致的问题: 尝试简化该查询,逐步加入复杂的部分,直到找到引发问题的部分。

    通过以上步骤,您应该能找到问题所在并进行相应的修复。如果在PostgreSQL数据库中查询能够正常执行,那么需要进一步研究ThingsBoard如何处理和执行SQL查询,以及它与后端数据库的交互方式。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月1日

悬赏问题

  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能