数据小白学习中 2024-08-22 16:33 采纳率: 78.3%
浏览 4
已结题

mysql中case when语句的使用

mysql 查询结果出现错误,case when 语句的使用。请问语句是有什么错误吗,最后的状态应该是待机,为什么是运行?

img

  • 写回答

1条回答 默认 最新

  • 吃不了席 2024-08-22 17:03
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    首先,我们需要对提供的查询语句进行格式化和整理,以便更好地理解其结构和逻辑。以下是整理后的查询语句:

    WITH linshi AS (
        SELECT dbtime,
               CASE
                   WHEN 五分厂5号挤压机电流 = '停机' THEN '停机'
                   ELSE '待机'
               END AS 五分厂5号挤压机,
               LAG(五分厂5号挤压机, 5) OVER (ORDER BY dbtime) AS 10mi,
               LAG(五分厂5号挤压机, 10) OVER (ORDER BY dbtime) AS 20mi,
               LAG(五分厂5号挤压机, 15) OVER (ORDER BY dbtime) AS 30mi
        FROM wfcshebeiyunxingdianliu
    ), temp_table AS (
        SELECT dbtime,
               五分厂5号挤压机电流,
               五分厂5号挤压机,
               10mi,
               20mi,
               30mi,
               CASE
                   WHEN 五分厂5号挤压机 = '关机' THEN '关机'
                   WHEN 五分厂5号挤压机 = '待机' AND LAG(五分厂5号挤压机, 15) OVER (ORDER BY dbtime) = '待机' AND
                        LAG(五分广5号挤压机, 10) OVER (ORDER BY dbtime) = LAG(dbtime, 5) OVER (ORDER BY dbtime) AND
                        dbtime = LAG(dbtime, 5) OVER (ORDER BY dbtime) THEN '待机'
                   ELSE '运行'
               END AS 5号状态
        FROM linshi
    )
    SELECT * FROM temp_table;
    

    从整理后的查询语句中,我们可以看到主要的逻辑如下:

    1. 首先,我们使用WITH语句创建了一个临时表linshi,在这个表中,我们根据五分厂5号挤压机电流的值来判断五分厂5号挤压机的状态('停机'或'待机'),并计算了10mi20mi30mi这三个滞后值。

    2. 然后,我们创建了另一个临时表temp_table,在这个表中,我们根据五分厂5号挤压机的状态以及滞后值来判断5号状态。如果五分厂5号挤压机为'关机',则5号状态为'关机';如果五分厂5号挤压机为'待机',且满足一系列滞后值条件,则5号状态为'待机';否则,5号状态为'运行'。

    3. 最后,我们从temp_table中查询所有记录。

    根据提供的数据,我们可以看到在大部分情况下,5号状态的值为'待机',但在有些情况下,它的值为'运行'。这可能是因为在判断5号状态时,没有满足'待机'的条件,所以默认为'运行'。为了解决这个问题,您需要检查您的数据和条件,确保它们正确地反映了您的需求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月30日
  • 已采纳回答 8月22日
  • 创建了问题 8月22日

悬赏问题

  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?
  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现