width用法 使查询语句更清晰

本文介绍了一个SQL查询案例,用于统计指定时间段内不同区域车辆的工作总时长,并进一步分析了每地区的车辆总数、有工作时长的车辆数及工作时长大于两小时的车辆数。

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

WITH Temp AS                                                        ---With 1  Temp
 (SELECT OOD_PROVINCE as Region,
         OnOff.VI_ID,
         SUM(OOD_WORKHOURS) as TotalWorkHours
    FROM ON_OFF_DAY201403 OnOff
   WHERE OOD_Day >= date '2014-3-28'
     AND OOD_Day <= date '2014-4-4'
     AND OOD_PROVINCE IS NOT NULL
     AND VI_OWN_TYPE = 3
   GROUP BY OOD_PROVINCE, OnOff.VI_ID
  UNION ALL
  SELECT OOD_PROVINCE as Region,
         OnOff.VI_ID,
         SUM(OOD_WORKHOURS) as TotalWorkHours
    FROM ON_OFF_DAY201404 OnOff
   WHERE OOD_Day >= date '2014-3-28'
     AND OOD_Day <= date '2014-4-4'
     AND OOD_PROVINCE IS NOT NULL
     AND VI_OWN_TYPE = 3
   GROUP BY OOD_PROVINCE, OnOff.VI_ID),
  
  
VehicleStats AS                                                         -- With 2 VehicleStats
 (SELECT Region, Vehicle.VI_ID, SUM(TotalWorkHours) as TotalWorkHours
    FROM Temp                                                          ---With 1  Temp
    JOIN Vehicle_Info Vehicle
      ON Temp.VI_ID = Vehicle.VI_ID
   WHERE 1 = 1
   GROUP BY Region, Vehicle.VI_ID)
  
  
SELECT Region,
       COUNT(*) AS VehicleCount,
       SUM(CASE
             WHEN TotalWorkHours > 0 THEN
              1
             ELSE
              0
           END) AS HasWorkHourCount,
       SUM(CASE
             WHEN TotalWorkHours > 2 THEN
              1
             ELSE
              0
           END) AS AboveWorkHourCount
  FROM VehicleStats                                                 -- With 2 VehicleStats
 GROUP BY Region
 ORDER BY AboveWorkHourCount DESC
<think>好的,用户现在需要整理一个Python方法,去除无效语句,使其易读。首先,我需要仔细分析用户提供的原始代码,找出哪些是无效的部分。 首先看原始代码中的调试部分,有很多`if 数值-数值:`的条件判断,比如`if 28-28:`,这些条件的结果都是0,也就是False,所以这些代码块永远不会执行,属于无效语句,应该删除。 接下来,用户提到的`quick_find`方法的主要逻辑是加载图像、处理搜索区域、转换为数组,然后调用`ImgUtils.find_arr`进行匹配。需要保留这些核心步骤。 然后,检查代码结构。原始代码中,在`if debug:`块里有很多无效的条件判断,之后是加载图像、处理尺寸、确定搜索区域、转换数组,最后返回`ImgUtils.find_arr`的结果。需要将无效的`if`条件去掉,保留有效的调试计时代码(如果有的话)。 注意到原始代码中有`TS.start()`和`TS.stop("before find_arr")`,这可能是调试时的计时逻辑,当`debug=True`时会记录时间,这部分是有效的,应该保留。 另外,原始代码末尾有一个`if 20-20:`的条件判断,同样因为20-20=0,条件为False,所以这部分也是无效的,需要删除。 整理后的代码应该保留核心逻辑:参数处理、图像加载、区域确定、数组转换、调用匹配方法,同时去除所有永远不会执行的无效条件语句。 最后,确保代码结构清晰,变量名可能需要适当注释,帮助用户理解每个步骤的作用。例如,变量名`iiI11i1II`可能是目标图像对象,可以重命名为清晰的名称,但用户可能希望保持原变量名,所以可能只需要注释说明。 总结,整理步骤是:删除所有`if 数值-数值:`的无效条件块,保留调试计时逻辑,调整代码结构,使其易读,并添加必要的注释。 </think>以下是整理后的代码(去除无效条件判断、优化结构、添加注释),核心逻辑清晰: ### **整理后代码** ```python from PIL import Image # 假设依赖 PIL 库(原代码中使用 Image.open) def quick_find(fp1, fp2, similar=1, density=None, rect=None, loc=ImgLoc.All.value, debug=False): """ 在目标图像中搜索模板图像的匹配位置(核心图像匹配方法) :param fp1: 目标图像文件路径(被搜索的大图) :param fp2: 模板图像文件路径(需要搜索的小图) :param similar: 相似度阈值(0~1,值越大匹配要求越严格) :param density: 图像密度(可能用于分辨率适配) :param rect: 搜索区域(元组,格式:(左, 上, 右, 下),限定搜索范围) :param loc: 预定义搜索位置(仅当 rect 为 None 时生效,如全图、中心区域等) :param debug: 调试模式(开启时记录关键步骤耗时) :return: 匹配结果(由 ImgUtils.find_arr 决定,如坐标、匹配分数等) """ # 调试模式:启动计时器(假设 TS 是自定义计时工具类) if debug: TS.start() # 开始计时(用于记录关键步骤耗时) # 步骤1:加载目标图像和模板图像 target_img = Image.open(fp1) # 目标图像(被搜索的大图) template_img = Image.open(fp2) # 模板图像(需要搜索的小图) # 步骤2:获取目标图像尺寸(宽度和高度) target_width, target_height = target_img.size # 步骤3:确定搜索区域(若未手动指定 rect,则根据 loc 生成默认区域) if not rect: # 通过工具类生成预定义位置的搜索区域(如全图、中心区域等) rect = ImgUtils.get_rect(target_width, target_height, loc) # 步骤4:裁剪目标图像(按搜索区域)并转换为数组(便于算法处理) # 若 rect 存在,裁剪目标图像的指定区域;否则使用完整目标图像 cropped_target = target_img.crop(rect) if rect else target_img target_array = ImgUtils.img2arr(cropped_target) # 目标图像数组 # 步骤5:将模板图像转换为数组 template_array = ImgUtils.img2arr(template_img) # 模板图像数组 # 调试模式:记录 "find_arr" 前的耗时 if debug: TS.stop("before find_arr") # 停止计时并输出耗时(如 "before find_arr: 0.5s") # 步骤6:调用核心匹配算法(返回匹配结果) return ImgUtils.find_arr( target_array, # 裁剪后的目标图像数组 template_array, # 模板图像数组 similar, # 相似度阈值 density, # 图像密度 rect, # 搜索区域 debug # 调试模式 ) ``` ### **关键说明(无效代码清理逻辑)** 1. **删除无效条件判断**: 原代码中所有 `if 数值-数值:`(如 `if 28-28:`、`if 16-16:`)的条件结果均为 `False`(因 `数值-数值=0`),对应代码块永远不会执行,已全部删除。 2. **变量重命名(可选)**: 原代码中变量名(如 `iiI11i1II`、`OO0O0OOo0O`)无明确含义,整理时替换为易理解的名称(如 `target_img`、`template_img`),实际使用中可根据项目规范保留原变量名。 3. **保留核心逻辑**: 图像加载、区域确定、数组转换、调用匹配算法(`ImgUtils.find_arr`)是核心功能,完整保留并添加注释说明。 4. **调试计时逻辑**: 仅保留 `TS.start()` 和 `TS.stop()` 这两个有效调试操作(假设 `TS` 是自定义计时工具类),其余无效调试代码已删除。 ### **优化后优势** - **可读性提升**:变量名直观,关键步骤添加注释; - **逻辑清晰**:按“加载图像→确定区域→转换数组→调用算法”的流程组织代码; - **冗余消除**:移除所有永远不会执行的无效代码,减少干扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值