SELECT (CASE WHEN aa.Infor2 = 0 THEN '0.00' ELSE CONVERT (round(aa.Infor1/aa.Infor2, 2), VARCHAR) END) AS qztime1 FROM (SELECT (CASE WHEN sum(subfb.BUSI_UNAVAIL_DURA - subfb.IRRESPONSE_DURA) IS NULL THEN 0 ELSE sum(subfb.BUSI_UNAVAIL_DURA - subfb.IRRESPONSE_DURA) END) AS Infor1, count(DISTINCT fb.SHEET_STREAM_NO) AS Infor2 FROM EM_ORDER em, EE_ORDER_FAULT_SHEET fb, EE_BZ_SUB_FAULT_SHEET subfb WHERE fb.SHEET_STREAM_NO = subfb.SHEET_STREAM_NO AND fb.BUSI_TYPE = '11' AND subfb.END_SHEET_METHOD = '1' AND em.DEL_FLAG = '0' AND em.PROCESS_INST_ID > 0 AND em.ORDER_ID = fb.ORDER_ID AND subfb.REASON_DESC NOT LIKE '%海缆%' AND (subfb.FAULT_DUTY = '11') AND fb.CONCLUDE_TIME >= '2023-09-09' AND fb.CONCLUDE_TIME <= '2023-09-09' ) aa

时间: 2024-04-11 08:26:14 浏览: 10
根据你提供的 SQL 查询,以下是优化建议: 1. 使用显式的 JOIN 语法:替换使用逗号分隔的表名列表,使用显式的 JOIN 语法可以提高查询的可读性和维护性。例如,将子查询中的表连接改写为内连接: ```sql FROM EM_ORDER em JOIN EE_ORDER_FAULT_SHEET fb ON em.ORDER_ID = fb.ORDER_ID JOIN EE_BZ_SUB_FAULT_SHEET subfb ON fb.SHEET_STREAM_NO = subfb.SHEET_STREAM_NO ``` 2. 使用合适的索引:确保为涉及到连接和筛选条件的列上创建了适当的索引。在这个查询中,你可以考虑为 `EE_ORDER_FAULT_SHEET` 表的 `BUSI_TYPE` 列和 `CONCLUDE_TIME` 列,以及 `EE_BZ_SUB_FAULT_SHEET` 表的 `END_SHEET_METHOD` 列和 `FAULT_DUTY` 列创建索引。 3. 避免不必要的子查询:你可以将子查询中的聚合函数和计数函数移到外部查询中,以避免使用子查询。这样可以简化查询,并且可能提高性能。这是重写后的查询: ```sql SELECT CASE WHEN aa.Infor2 = 0 THEN '0.00' ELSE CONVERT(ROUND(aa.Infor1 / aa.Infor2, 2), VARCHAR) END AS qztime1 FROM (SELECT CASE WHEN SUM(subfb.BUSI_UNAVAIL_DURA - subfb.IRRESPONSE_DURA) IS NULL THEN 0 ELSE SUM(subfb.BUSI_UNAVAIL_DURA - subfb.IRRESPONSE_DURA) END AS Infor1, COUNT(DISTINCT fb.SHEET_STREAM_NO) AS Infor2 FROM EM_ORDER em JOIN EE_ORDER_FAULT_SHEET fb ON em.ORDER_ID = fb.ORDER_ID JOIN EE_BZ_SUB_FAULT_SHEET subfb ON fb.SHEET_STREAM_NO = subfb.SHEET_STREAM_NO WHERE fb.BUSI_TYPE = '11' AND subfb.END_SHEET_METHOD = '1' AND em.DEL_FLAG = '0' AND em.PROCESS_INST_ID > 0 AND subfb.REASON_DESC NOT LIKE '%海缆%' AND subfb.FAULT_DUTY = '11' AND fb.CONCLUDE_TIME >= '2023-09-09' AND fb.CONCLUDE_TIME <= '2023-09-09' ) aa ``` 这些是一些常见的优化建议,但具体的优化策略取决于你的数据库架构、数据量和性能需求。如果你能提供更多关于表结构、数据量和性能目标的信息,我可以为你提供更具体的优化建议。

相关推荐

import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/subject/30228394/' header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'} response = requests.get(url=url, headers=header) soup = BeautifulSoup(response.text, 'html.parser') tv_infor = {} # 1.获取电视剧名称 name = soup.find(property="v:itemreviewed").string # 根据属性property="v: itemreviewed"查找 tv_infor['name'] = name # 将电影名称加到字典tv_infor中 # 2.获取导演 director = soup.find(rel="v: directedBy").string # 根据属性re1="v:directedBy“查找 tv_infor['director'] = director # 3.获取编剧 soup_list = soup. findAll(class_="attrs")[1].findAll('a') writers = [elem. string for elem in soup_list] tv_infor['writers'] = writers # 4.获取演员 soup_list = soup. findAll(rel="v:starring") actors = [elem. string for elem in soup_list] tv_infor['actors'] = actors # 5.获取类型 soup_list = soup. findAll(property="v: genre") tv_type = [elem. string for elem in soup_list] tv_infor['type'] = tv_type # 6.首播时间 release_date = soup.find(property="v: initialReleaseDate").string tv_infor['release_date'] = release_date # 7.豆瓣评分 rating = soup.find(property="v: average").string tv_infor['rating'] = rating # 8.参评人数 votes = soup.find(property="v: votes").string tv_infor['votes'] = votes print("电视剧《觉醒年代》相关信息如下:") for key, value in tv_infor.items(): print(key, ":", value)运行报错

import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/subject/30228394/' header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'} response = requests.get(url=url, headers=header) soup = BeautifulSoup(response.text, 'html.parser') tv_infor = {} # 1.获取电视剧名称 name = soup.find(property="v:itemreviewed").string # 根据属性property="v: itemreviewed"查找 tv_infor['name'] = name # 将电影名称加到字典tv_infor中 # 2.获取导演 director = soup.find(rel="v: directedBy").string # 根据属性re1="v:directedBy“查找 tv_infor['director'] = director # 3.获取编剧 soup_list = soup. findAll(class_="attrs")[1].findAll('a') writers = [elem. string for elem in soup_list] tv_infor['writers'] = writers # 4.获取演员 soup_list = soup. findAll(rel="v:starring") actors = [elem. string for elem in soup_list] tv_infor['actors'] = actors # 5.获取类型 soup_list = soup. findAll(property="v: genre") tv_type = [elem. string for elem in soup_list] tv_infor['type'] = tv_type # 6.首播时间 release_date = soup.find(property="v: initialReleaseDate").string tv_infor['release_date'] = release_date # 7.豆瓣评分 rating = soup.find(property="v: average").string tv_infor['rating'] = rating # 8.参评人数 votes = soup.find(property="v: votes").string tv_infor['votes'] = votes print("电视剧《觉醒年代》相关信息如下:") for key, value in tv_infor.items(): print(key, ":", value)为什么运行报错

import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/subject/30228394/' header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'} response = requests.get(url=url, headers=header) soup = BeautifulSoup(response.text, 'html.parser') tv_infor = {} # 1.获取电视剧名称 name = soup.find(property="v:itemreviewed").string # 根据属性property="v: "查找 tv_infor['name'] = name # 将电影名称加到字典tv_infor中 # 2.获取导演 director = soup.find(rel="v: directedBy").string # 根据属性re1="v:directedBy“查找 tv_infor['director'] = director # 3.获取编剧 soup_list = soup. findAll(class_="attrs")[1].findAll('a') writers = [elem. string for elem in soup_list] tv_infor['writers'] = writers # 4.获取演员 soup_list = soup. findAll(rel="v:starring") actors = [elem. string for elem in soup_list] tv_infor['actors'] = actors # 5.获取类型 soup_list = soup. findAll(property="v: genre") tv_type = [elem. string for elem in soup_list] tv_infor['type'] = tv_type # 6.首播时间 release_date = soup.find(property="v: initialReleaseDate").string tv_infor['release_date'] = release_date # 7.豆瓣评分 rating = soup.find(property="v: average").string tv_infor['rating'] = rating # 8.参评人数 votes = soup.find(property="v: votes").string tv_infor['votes'] = votes print("电视剧《觉醒年代》相关信息如下:") for key, value in tv_infor.items(): print(key, ":", value)

最新推荐

recommend-type

Infor Studio弹出框制作.docx

如何在infor studio中制作弹出框,文档中做了详细的讲解及相关注意事项;图文并茂,希望对大家有帮助
recommend-type

Infor Studio 表头表体展示教程.docx

CRB开发-表头表体展示 使用oracle数据库,用CRB工具做出对表头表体进行界面展示的效果 文档中详细描述了工具的操作步骤和使用说明
recommend-type

Infor SCE 10 详细安装说明

Infor SCE 10 详细安装说明, Oracle, SCE. 详细配置
recommend-type

Infor汽车行业供应链管理解决方案

SupplyWEB是Infor所推出的基于Web的汽车供应链管理(SCM)解决方案。它的设计可降低供应链成本和库存,并提高运营效率。它可以提高供应商监控能力、实现 企业间沟通并提供高级系统集成,从而给您带来很高的ROI。
recommend-type

WMS软件国内主要供应商分析.pptx

富勒Flux、唯智Vtradex、红色草原RedPrairie、Infor、曼哈顿 Manhattan
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

Redis验证与连接:安装成功验证技巧

![Redis从入门到精通](https://img-blog.csdnimg.cn/6f39d0a2adc3456b96e804eb45032480.png) # 1. Redis安装与验证** ### 2.2 Redis验证方法 Redis验证可以通过以下方法进行: - **命令行验证:** - 打开终端,输入 `redis-cli` 命令进入 Redis 命令行。 - 输入 `ping` 命令,如果返回 "PONG",则表示 Redis 正在运行。 - **客户端验证:** - 使用 Redis 客户端(如 RedisInsight)连接到 Redis 服务器。
recommend-type

3、自定义一个函数int compareStr(char *p1, char *p2),实现两个字符串的比较。相等返回0,大于返回1,小于返回0;编写主函数main()来调用自定义函数完成测试。

下面是自定义的 `compareStr` 函数的代码实现: ```c #include <stdio.h> int compareStr(char *p1, char *p2) { while (*p1 && *p2 && (*p1 == *p2)) { p1++; p2++; } return (*p1 > *p2) - (*p1 < *p2); } int main() { char str1[100], str2[100]; int result; printf("请输入第一个字符串:");
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。