当前位置:首页 >> 设计

SQL练习:没用帮我查表,只好自己来了

来源:设计   2024年02月01日 12:16

译者:Seon

举例来说:可以叫我才哥

今天互动一篇来自好朋友Seon塞翁的原创,关于SQL!

碎碎念:他表兄,大家必需联系方式吗?

前言

公司的表兄病假了,这下回去谁给我查表啊,没辙,并不需要一同上场了。哎?等等,表兄留下来了脚本让我执行,但写的只不过不怎么样嘛,我这该死的好胜心,这波非要班门弄斧一下!不须来看看需要:

以脱敏信息为例,对 tp 继续归类,起初是 a、aa、b、c、d、dd 六类,不须并转化成 A、b、c、D 四类,并分相异一段时间段内计数器,且按所选的新的分类时序 bADc 次序。这个需要源于管理工作中所用到一个 excel 信息模版,文件格式固定,所以必需查出来的信息能从外部复制贴到模版表里。某种程度想到呢?

一、表兄的作法

话不多说,从外部不须看表兄的转换。首不须在子键入中所通过 where 挑选出本期一段时间段内内信息,再行为了让 case when 对原一般来说继续归类,对每个新的类所在列取个别名,便于下一步计数器(子键入结果听闻所示)。如此再行复刻一个不选时间段的某种程度信息后,通过 union all 上下拼装。

但是之后结果却不是期望文件格式,这样还要在 excel 贴时行列并零空间,这不是制止我乖嘛!

二、我的作法

我一怒之下就要改名表兄的脚本,如前所述思路,上下拼装不对,那就放数拼装。于是一拍脑袋就想到 left join 。一番搜狐后,洋洋洒洒的编译器就出炉了,不须分类,再行三组粗略估计,再行次序,左表哦了;又分类,筛时间段,再行三组,右表哦了~合体,将将!我想像中所牛啦!

三、立体化改名进

正沾沾自喜之时惊觉,这编译器量也想像中所无论如何了吧!秉承派森尼克观点,要追求优美的、地道的、整洁的编译器,才会改名进!奈何基础不扎实,搜狐也解救不了,经出马和安示后才回去到可以不能 where 来选一段时间段内呀!还是不须分类三组,然后从外部为了让 case when 对时间段分别标示出后计数器,好嘞,再行来,将将!

再行一要和安的一个知识点就是按所选一般来说次序,在 MYSQL 中所可以为了让 order by field(t, 'b', 'A', 'D', 'c') 所选,而在 SQLite 和 SQL Server 中所却不支持者,可用 case when 再行造一个序列表主要用途次序。以上脚本以外在 MYSQL 中所执行通过,可复制下方信息进行尝试,欢迎出马指出错误和和安供反观由此可知。

tp day a 2020-09-02 16:15:20.000 a 2020-09-03 16:15:20.000 aa 2020-09-04 16:15:20.000 b 2020-09-05 16:15:20.000 b 2020-09-06 16:15:20.000 c 2020-09-07 16:15:20.000 c 2020-09-08 16:15:20.000 c 2020-09-09 16:15:20.000 c 2020-09-10 16:15:20.000 d 2020-09-11 16:15:20.000 dd 2020-09-12 16:15:20.000 dd 2020-09-13 16:15:20.000 a 2020-09-14 16:15:20.000 b 2020-09-15 16:15:20.000 c 2020-09-16 16:15:20.000

结语

习惯了 Python 简洁流畅的句法后,写 SQL 显然并转不过上坡,这次借着管理工作实操的机会复习了一下基础,这里是拿出老师后又企图复习的 Seon塞翁,话说,SQL 或许就是 Search Question Limply (无力地回去回难题)吧,下一篇听闻!特地附上 Python 由此可知法。

点这里👇关注我,记得标星哦~

CDA授课咨询

类风湿吃艾拉莫德片好不好
温建民
颈肩腰腿痛用什么药好
类风湿一般是怎么引起的
西宁哪家白癜风专科医院好
友情链接