pgsql 同比或者下降

本文探讨了使用SQL查询统计不同类型的设备在指定时间段内创建次数的变化,通过计算百分比增减,揭示了total_tAS、type_hbc_tas和type_tbc_tas之间的对比情况。核心内容涉及时间区间筛选和数据趋势分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  WITH total_t AS (
          select COUNT ( T.* ) AS COUNT FROM table t
 t.create_time BETWEEN to_timestamp( #{startTime},'yyyy-mm-dd')
                 and to_timestamp( #{endTime},'yyyy-mm-dd')

        ),
        type_hbc_t as(
     select COUNT ( T.* ) AS COUNT FROM table t
   t.create_time BETWEEN to_timestamp( #{startTime},'yyyy-mm-dd')
                 and to_timestamp( #{endTime},'yyyy-mm-dd')
        ),
        type_tbc_t as (
          select COUNT ( T.* ) AS COUNT FROM table t
 t.create_time BETWEEN to_timestamp( #{startTime},'yyyy-mm-dd')
                 and to_timestamp( #{endTime},'yyyy-mm-dd')
        )
        SELECT
        t2.count as total,
      (case when t3.COUNT - t2.COUNT > 0 then 'up' else 'down' end ) as hb_up_down,
		(case when t4.COUNT - t2.COUNT > 0 then 'up' else 'down' end ) as tb_up_down,
         CASE WHEN t3.COUNT - t2.COUNT > 0 THEN round((t3.COUNT - t2.COUNT)*100.0/t2.count::numeric ,2)
        else round(abs(t3.COUNT - t2.COUNT)*100.0/t2.count::numeric ,2)  END AS hb,
         CASE WHEN t4.COUNT - t2.COUNT > 0 THEN round((t4.COUNT - t2.COUNT) *100.0/t2.count::numeric ,2)
        else round(abs(t4.COUNT - t2.COUNT)*100.0/t4.count::numeric ,2)  END AS tb
        FROM total_t t2, type_hbc_t t3,type_tbc_t t4 





<sql id="hbConditionSql">
        <where>
            <if test="type != null and type != '' and type=='1'.toString()">
                <![CDATA[ T.create_time BETWEEN  #{startTime}::timestamp + '-1 day'
            and  #{endTime}::timestamp + '- 1 day' ]]>
            </if>

            <if test="type != null and type != '' and type=='2'.toString()">
                <![CDATA[ T.create_time BETWEEN  #{startTime}::timestamp + '-1 week'
            and  #{endTime}::timestamp + '- 1 week' ]]>
            </if>

            <if test="type != null and type != '' and type=='3'.toString()">
                <![CDATA[ T.create_time BETWEEN  #{startTime}::timestamp + '-1 month'
            and  #{endTime}::timestamp + '-1 month' ]]>
            </if>

            <if test="type != null and type != '' and type=='4'.toString()">
             <![CDATA[ T.create_time BETWEEN  #{startTime}::timestamp + '-3 month'
              and  #{endTime}::timestamp + '-3 month' ]]>
            </if>

            <if test="type != null and type != '' and type=='4'.toString()">
                <![CDATA[ T.create_time BETWEEN  #{startTime}::timestamp + '-1 year'
              and  #{endTime}::timestamp + '-1 year' ]]>
            </if>

        </where>
    </sql>

### micro-ROS Agent 安装配置及使用教程 #### 一、简介 micro-ROSROS 2 的轻量级实现,旨在支持资源受限设备。micro-ROS Agent 起到了桥梁的作用,在主机上运行并与目标嵌入式设备通信[^1]。 #### 二、环境准备 为了顺利安装和配置 micro-ROS Agent ,需要先准备好开发环境。确保已经安装了 Docker 或者按照官方文档说明设置好依赖项。对于网络问题导致无法从 GitHub 下载的情况,可以考虑通过其他镜像源获取所需文件并手动放置到指定位置,例如将 `~/spdlog/include/spdlog` 替换至 `/usr/local/include/spdlog` [^4]。 #### 三、安装过程 访问[micro-ROS-Agent](https://gitcode.com/gh_mirrors/mi/micro-ROS-Agent)项目页面,遵循README中的指导完成编译构建工作。通常情况下会涉及到克隆仓库、创建虚拟环境以及执行特定命令来启动服务程序。 ```bash # 假设已解决前置条件 cd ~/workspace/ git clone https://gitcode.com/gh_mirrors/mi/micro-ROS-Agent.git cd micro-ROS-Agent colcon build --symlink-install source install/setup.bash ``` #### 连接与测试 一旦成功部署完毕之后就可以尝试让其与实际硬件建立联系了。这一步骤可能涉及修改串口参数或是调整 IP 地址等细节设定以便适配不同场景下的需求。 ```python import rclpy from geometry_msgs.msg import Twist def main(args=None): rclpy.init(args=args) node = rclpy.create_node('minimal_publisher') publisher_ = node.create_publisher(Twist, 'cmd_vel', 10) msg = Twist() while True: # 发送控制指令给机器人移动平台 pass if __name__ == '__main__': main() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值