暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

有意思的SQL(三)

原创 aisql 2023-11-28
130

墨天轮上问SQL开发相关的问题较少,大部份都是运维相关问题,有时候为了练练手,会去牛客网刷刷题,写一些高阶的SQL;有时也会逛逛CSDN,回答问题过过瘾。CSDN上求SQL题解的比这里要多一些。
今天遇到一个问题,开始没有想好,用窗口函数折腾了好久也没有折腾出来,后来想到用伪列,很容易就做出来了

贴一下原题
image.png
这里题目写错了两点。
第一,最后一行的月分为4
第二,最后一行的本期计划支付金额为130

贴一下代码

with cte as ( select '手机' as 商品名称,2023 as 年份,1 as 月份,80 as 本期金额 union all select '手机' as 商品名称,2023 as 年份,2 as 月份,200 as 本期金额 union all select '手机' as 商品名称,2023 as 年份,3 as 月份,250 as 本期金额 union all select '手机' as 商品名称,2023 as 年份,4 as 月份,260 as 本期金额 ) select *,@b as 本期已付, @b := 本期金额 - @b as 本期计划支付 from cte,(select @b:= 0) as t

执行结果
image.png
mysql的伪列功能很强大,有很多有意思的用法。

SQL技术的提升,熟练各种语法及常规用法是坚固的基础。 有了基础后就是多写SQL,练练就成高手了。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论