ChatGPT 提高工作效率-一例SQL编写的过程

chatgpt,提高,工作效率,一例,sql,编写,过程 · 浏览次数 : 47

小编点评

## SQL 解决方案 ```sql WITH PatchInfo AS ( SELECT p.patchcode, p.patchid, p.patchmodule, p.publishtime, CASE WHEN d.deppatchid IS NULL THEN p.patchstate ELSE 'Published' END AS patchstate FROM LCBM9999.patchinfo p LEFT JOIN LCBM9999.patchdepinfo d ON p.patchid = d.patchid WHERE p.patchstate = 'PUBLISHED' ) SELECT pi.patchcode FROM PatchInfo pi WHERE pi.patchid NOT IN ( SELECT deppatchid FROM PatchInfo ) AND pi.patchstate = 'PUBLISHED' AND pi.patchid NOT IN ( SELECT patchid FROM PatchInfo GROUP BY patchmodule HAVING COUNT(*) > 1 ) ORDER BY pi.patchcode ASC; ``` ## 解释 1. **PatchInfo 表**:包含所有项目信息,包括代码、ID、模块、发布时间和状态。 2. **PatchDepInfo 表**:记录每个项目发布的所有依赖关系。 3. **PatchInfo 表**:记录每个项目的最后一次发布信息。 **思路:** 1. **Window Function**:在 PatchInfo 表中使用 ROW_NUMBER() 函数计算每个分组的最后一个记录的 ID。 2. **WHERE 条件**:筛选出 patchid 在 PatchDepInfo 中不存在的项目,即这些项目已经发布,但没有依赖关系。 3. **GROUP BY 和 ORDER BY**:根据项目代码对结果进行分组并排序。 4. **LIMIT**:限制结果以只返回最后一次发布的项目。 **结果:** 该查询将返回所有没有被依赖关系的项目代码,并按代码排序。

正文

ChatGPT 提高工作效率-一例SQL编写的过程


前言

遇到一个问题, 怀疑是有一些补丁没有被依赖. 
导致第一次更新时没有更新这些没依赖的补丁. 
后面更新时又更新了这些游离态的补丁.
导致出现 old 文件 覆盖 new 文件
出现程序问题. 
一个补丁还好着, 但是所有的补丁去检查就比较麻烦了.
所以想写出一个SQL来.
问题是 此处设计到了 3张表, 
一张信息表, 一张依赖关系表, 一张发布时间表
自己SQL能力非常菜鸡. 所以在贵文老师的帮助下使用了ChatGPT提高了编写效率.
所以想记录一下. 科学技术的确是生产力

思路

1. 主要是要获取所有模块最后一个发布的补丁列表
2. 查询所有没有被依赖信息的已发布补丁信息.
3. 基于2再删除1的结果, 获取如下内容:

不是该模块最后一个已发布, 并且没有依赖关系的补丁

ChatGPT的讲解

考虑到上一步的场景1 
应该需要使用窗口函数进行查询
但是自己的窗口函数处理能力基本上等于 0 语法都不熟悉
所以打开如下网站:https://chat.aidutu.cn/

我问的: 
SQLSERVER 查询 多分组情况下 每个分组的最后一个记录

ChatGPT答复的

您可以使用子查询和窗口函数来实现按多个分组列对结果进行分组,并且获取每个分组的最后一个记录。下面是一种可能的解决方案:

sql
SELECT *
FROM (
  SELECT 
    *,
    ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY id DESC) as rn
  FROM your_table
) t
WHERE rn = 1;

基于ChatGPT的讲解编写自己的SQL

解释:

首先在 FROM 子句中使用子查询,以便在内部查询中计算每个分组的最后一个记录。这个查询返回以下列:

col1、col2 和所有你需要的其他列,作为 GROUP BY 的参数。
id,作为分组内的排序列,并按降序排列,意味着第一行就是最后一行。
将这个子查询封装在外面的 SELECT 语句中,它过滤了每个分组中只包含 ID 最大的行。如果某个分组有多个相同的 ID,则该查询将返回其中任何一个。
总之,这个查询将返回每个分组的最后一个记录,即每个不同于其它分组的唯一组合。

自己编写的SQL就为:
    SELECT
     patchcode 
    FROM
     xxxx.patchinfo 
    WHERE
     patchid NOT IN ( SELECT deppatchid FROM xxxx.patchdepinfo ) 
     AND patchstate = 'PUBLISHED' 
     AND patchid NOT IN (
     SELECT
      patchid 
     FROM
      (
      SELECT
       *,
       ROW_NUMBER ( ) OVER ( PARTITION BY patchmodule ORDER BY publishtime DESC ) AS rn 
      FROM
       (
       SELECT
        a.patchid,
        a.patchcode,
        a.patchmodule,
        b.publishtime 
       FROM
        LCBM9999.patchinfo a
        INNER JOIN LCBM9999.PATCHPUBLISHED b ON a.patchid = b.patchid 
       ) w 
      ) t 
     WHERE
     rn = 1 
     ) order by patchcode asc 

感想

ChatGPT 的确是生产力工具
能够让我这种SQL菜鸡实现一定程度的高级SQL编写能力. 

感觉的确会对IT数从业人员产生巨大的挑战.  
需要不停的学习. 比机器人更能思考,更能创造价值才可以利于不败之地. 

学会的东西可能明天就是废纸了. 但是必须得有获取新知识,新方向的能力. 

与ChatGPT 提高工作效率-一例SQL编写的过程相似的内容:

ChatGPT 提高工作效率-一例SQL编写的过程

ChatGPT 提高工作效率-一例SQL编写的过程 前言 遇到一个问题, 怀疑是有一些补丁没有被依赖. 导致第一次更新时没有更新这些没依赖的补丁. 后面更新时又更新了这些游离态的补丁. 导致出现 old 文件 覆盖 new 文件 出现程序问题. 一个补丁还好着, 但是所有的补丁去检查就比较麻烦了.

利用ChatGPT提升测试工作效率——测试工程师的新利器(一)

在测试工作中可以辅助功能测试包括需求分析或解读代码(注意代码安全)后生成测试用例,还可以辅助生成代码,接口测试用例,自动化脚本等各个方向起作用。当然实际使用中可能会因为提示词的不同生成的结果需要人工多次对话训练才可以。但是使用chatGPT肯定比不用能提高工作效率。当然具体落地后如何进行量化提效抽象...

Oracle AWR学习之二-利用ChatGPT编写一键获取AWR报告的脚本

# Oracle AWR学习之二-ChatGPT提升效率之n ## 背景 ``` 之前生成awr报告比较麻烦, 想着能够一键生成. 再辅以部分shell或者是python处理就可以进行细致的分析. 这一块其实还是比较简单的, 在ChatGPT加持下的确能够极大的提高自己的工作效率. 但是怀疑国内的学

ChatGPT如何助力DevOps|用例解读

DevOps 是一种方法论,旨在提高软件开发和 IT 运营团队的协作和效率。DevOps 涉及各种任务和流程的自动化,例如规划、编码、测试、部署、监控和故障排除。然而,其中一些任务和流程仍然有大量任务需要人工手动处理,而这会减慢软件产品和服务的交付和质量。随着人工智能技术的快速崛起和扩张,AI 技术

GPT-4助力数据分析:提升效率与洞察力的未来关键技术

ChatGPT-4作为一种先进的自然语言处理技术,为数据分析带来了革命性的提升,助力企业和组织更高效地挖掘数据价值。本文将探讨ChatGPT-4在数据分析中的应用,以及如何通过该技术提高数据分析的效率和洞察力。

Poe – Fast AI Chat 一款集成AI工具

Poe – Fast AI Chat是由知名问答社区 Quora 开发的 AI 产品,提供实时在线与多个 AI 机器人交流的功能。目前,ChatGPT、Sage、Dragonfly、Claude 机器人都可以免费、无限制、实时使用,只需要一个邮箱即可注册。用户可以随时切换 AI 机器人而对话不中断,对话记录在线保存并且同步到客户端。Poe为用户提供了简单易用、高效便捷的智能交流服务,是企业和组织提高客户服务水平、优化工作流程的好帮手。

使用ChatGPT自动构建知识图谱

1.概述 本文将探讨利用OpenAI的gpt-3.5-turbo从原始文本构建知识图谱,通过LLM和RAG技术实现文本生成、问答和特定领域知识的高效提取,以获得有价值的洞察。在开始前,我们需要明确一些关键概念。 2.内容 2.1 什么是知识图谱? 知识图谱是一种语义网络,它表示和连接现实世界中的实体

ChatGPT 通过谷歌算法面试,年薪 18.3 万美金

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 声明:此图片由 MidJourney 生成 未经训练,不属于任何真实人物 大家好,我是小彭。 2023 开年以来,全球媒体最火爆的热点莫过于一个生成式 AI 聊天机器人 —— ChatGPT,我们都被大量的信

ChatGPT开发实战

1.概述 前段时间使用体验了ChatGPT的用法,感受到ChatGPT的强大,通过搜索关键字或者输入自己的意图,能够快速得到自己想要的信息和结果。今天笔者将深挖一下ChatGPT,给大家介绍如何使用ChatGPT的API来实战开发一些例子。 2.内容 2.1 ChatGPT起源 这个还得从谷歌发布B

ChatGPT API使用介绍

1.概述 随着人工智能技术的不断发展,越来越多的AI产品被应用到各个领域,其中最具代表性的莫过于人工智能语言模型。语言模型是一种可以通过学习大量语言数据来预测文本或语音的技术,其应用范围十分广泛,如智能客服、机器翻译、语音助手等。 而ChatGPT是其中最为优秀的语言模型之一。ChatGPT是Ope