SELECT (COUNT(CASE WHEN s.equipment_state > 0 AND WEEK(s.state_time) = YEARWEEK(NOW(),1) THEN 1 END) / COUNT(CASE WHEN s.equipment_state = 0 AND WEEK(s.state_time) = YEARWEEK(NOW(),1) THEN 1 END)) / (COUNT(CASE WHEN s.equipment_state > 0 AND WEEK(s.state_time) = YEARWEEK(NOW(),1) - 1 THEN 1 END) / COUNT(CASE WHEN s.equipment_state = 0 AND WEEK(s.state_time) = YEARWEEK(NOW(),1) - 1 THEN 1 END)) AS ratio FROM equipment_state s;为什么输出不了结果
时间: 2023-06-18 21:02:40 浏览: 37
这个SQL查询语句应该是可以输出结果的,但是可能存在以下几个问题:
1. 数据库连接问题:请确保你已经连接到需要查询的数据库,并且数据库的权限设置正确。
2. 表名或字段名错误:请确保你所使用的表名和字段名都是正确的,并且大小写匹配。
3. 数据库中没有数据:如果在执行查询语句时数据库中没有符合条件的数据,那么查询结果就会为空。
你可以检查以上问题,或者提供更详细的错误信息,以便我更好地帮助你解决问题。
相关问题
yearweek(create_time, 1) = yearweek(now())
这个问题看起来是一个 SQL 查询语句的条件,它的意思是查询数据库中 create_time 字段所表示的时间是否在当前年的当前周内。具体来说,yearweek(create_time, 1) 函数会返回 create_time 所在的年和周的编号,而 yearweek(now()) 则返回当前时间所在的年和周的编号。这个条件可以用于筛选出最近一周内创建的数据。
SELECT * FROM app_user_sign_in WHERE YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now()) and app_user_id=121
这是一个 SQL 查询语句,查询条件为:在当前周内,app_user_id 为 121 的用户登录记录。具体解释如下:
- `SELECT *`: 查询所有列
- `FROM app_user_sign_in`: 从 app_user_sign_in 表中查询
- `WHERE YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now())`: 过滤条件为,将 create_time 列格式化为年月日后,计算当前周的年周数,与当前年周数相同
- `and app_user_id=121`: 过滤条件为,app_user_id 列等于 121