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编写的过程的更多相关文章

  1. paip.提高工作效率--数据绑定到table原则和过程Angular js jquery实现

    paip.提高工作效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #----- ...

  2. 可提高工作效率的 PL/SQL Developer 设置

    1.将Window List 列表展示出来并保存当前布局 ①Tools-->Windows List (展示窗口列表) ②Window-->Save Layout (保存当前布局) 2.设 ...

  3. 倍数提高工作效率的 Android Studio 奇技

    来源:JeremyHe 链接:http://zlv.me/posts/2015/07/13/14_android-studio-tips/ 这是从Philippe Breault的系列文章<An ...

  4. [转]倍数提高工作效率的 Android Studio 奇技

    转自:http://android.jobbole.com/81687/ 倍数提高工作效率的 Android Studio 奇技 2015/10/08 · 技术分享 · 4 评论· Android S ...

  5. 15款提高工作效率的 Web 项目管理工具

    在今天的快节奏的商业世界里,能够通过计划.组织.和管理资源池以及评估开发资源的模式来管理一个项目,是一个很艰巨的任务. 有很多现成的项目管理软件来帮助减轻项目管理的负担,并且他们几乎覆盖了所有类型的业 ...

  6. 美国一家科技公司毕威拓(Pivotal)规定员工在早上9点06分准时上班,以提高工作效率。

    美国一家科技公司毕威拓(Pivotal)规定员工在早上9点06分准时上班,以提高工作效率. 据<英国广播公司BBC>报道,美国科技公司毕威拓(Pivotal)的员工每天都要在9点06分准时 ...

  7. 巧用Excel提高工作效率

    程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统 ...

  8. 怎样使用ListView实现一个带有网络请求,解析,分页,缓存的公共的List页面来大大的提高工作效率

    在寻常的开发中常常会有非常多列表页面.每做一个列表页就须要创建这个布局文件那个Adapter适配器文件等等一大堆与之相关的附属的不必要的冗余文件. 假设版本号更新迭代比較频繁,如此以往,就会使项目pr ...

  9. 使用并行ssh提高工作效率

    我们经常需要ssh到多个主机上执行相同的命令,为了提高效率,我们通常会自己写个脚本,循环遍历执行我们的命令,比如: for host in `cat hosts.txt`;do ssh usernam ...

  10. Android Studio in OSX 提高工作效率的快捷键

    前言 本篇文章参考了<倍数提高工作效率的Android Studio>一文,快捷键基于OS X系统. OS X Yosemite 10.10.5 Android Studio 1.3.1 ...

随机推荐

  1. 【程序员的福音】一款C#开源的GitHub加速神器

    前言 作为一个程序员你是否会经常会遇到GitHub无法访问(如下无法访问图片),或者是访问和下载源码时十分缓慢就像乌龟爬行一般.之前有尝试过手动修改host文件来解决网站的访问问题,以及更换网络但还是 ...

  2. 记一次 MySQL timestamp 精度问题的排查 → 过程有点曲折

    开心一刻 下午正准备出门,跟正刷着手机的老妈打个招呼 我:妈,今晚我跟朋友在外面吃,就不在家吃了 老妈拿着手机跟我说道:你看这叫朋友骗缅北去了,tm血都抽干了,多危险 我:那是他不行,你看要是吴京去了 ...

  3. antd ui的from使用问题

    select 的allowClear失效问题 select的value与allowClear同时使用会导致allowClear失效 解决方法 from包装一层,通过const [form] = For ...

  4. 一次事故,我对MySQL时间戳存char(10)还是int(10)有了全新的认识

    摘要:char类型字段想走索引的话,必须用引号括起来.如果是时间戳等类型的纯数字,建议还是存为int型吧. 本文分享自华为云社区<一次事故,我对MySql时间戳存char(10)还是int(10 ...

  5. 带你聚焦GaussDB(DWS)存储时游标使用

    摘要:游标是一种数据处理方法,提供了在查询结果集中进行逐行遍历浏览数据的方法,也可以将游标当做上下文区域的句柄或者指针,借助游标对指定位置的数据进行查询与处理. 本文分享自华为云社区<Gauss ...

  6. 云小课|教你如何使用RDS for PostgreSQL插件

    摘要:本文介绍RDS for PostgreSQL支持的插件及不同插件的创建.删除或使用方法. 本文分享自华为云社区<[云小课][第42课]RDS for PostgreSQL插件介绍>, ...

  7. Kubernetes(K8S) 安装Nacos,报 No DataSource set

    原因,数据库为 MySQL 5.7 需要在yaml加上参数 mysql.db.param: "characterEncoding=utf8&connectTimeout=1000&a ...

  8. Sublime Ctrl+B 编译输出乱码

    1.输入乱码如图 2.Preferences -> Browse Packages.. 3.加入  "env": { "PYTHONIOENCODING" ...

  9. 多智能体协同控制研究中光学动作捕捉与UWB定位技术比较

    人类在进行任何工作时,总是强调团队合作,teamwork.随着控制科学.计算机科学等多学科的交叉发展与融合,在智能体控制领域,对于单个机器人,无人机,无人车的控制已经不能满足现在领域的技术需求,从而和 ...

  10. 系统学Prompt,强烈推荐这3个教程,OpenAI还是最强

    系统学Prompt,强烈推荐这3个教程 OpenAI官方Prompt教程 这是最权威.最详细.最值得深入学习的提示词工程学习教程! 教程地址:https://platform.openai.com/d ...