sql(day1)

https://www.nowcoder.com/practice/4ab6d198ea8447fe9b6a1cad1f671503?tpId=375&tqId=10737572&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page 每个月Top3的周杰伦歌曲

这个题目的子查询创建了一个列表,学习一个新语法

ROW_NUMBER() OVER (

[PARTITION BY expr1, expr2,...]

ORDER BY expr1 [ASC | DESC], expr2,...

)

在此语法中,

  • PARTITION BY 子句将结果集划分为分区。PARTITION BY 子句是可选的。如果省略它,ROW_NUMBER 函数会将整个结果集视为单个分区。
  • ORDER BY 子句对每个分区中的行进行排序。由于 ROW_NUMBER() 是一个对顺序敏感的函数,因此 ORDER BY 子句是强制性的。
  • ROW_NUMBER() 函数为每个分区内的每一行分配一个连续的整数序号。当跨越分区边界时,它会重置行号。

还有就是, COUNT(*), SUM(), AVG()等聚合函数要在SELECT后面写。

https://www.nowcoder.com/practice/cb8bc687046e4d32ad38de62c48ad79b?tpId=375&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page

最长连续登陆天数

这个题目造了3个表(CTE和子查询),虽然没有特别理解这个思路的来源吧,但是先顺着答案过了一遍,CTE的写法要在前面加个

WITH,例如WITH ordered_logins AS(……),注意多个CTE只写一个WITH就行,但是中间要加逗号。

https://www.nowcoder.com/practice/22633632da344e2492973ecf555e10c9?tpId=375&tqId=10497698&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page 分析客户逾期情况

求一列中非NULL的占比:CONCAT(ROUND(SUM(CASE WHEN l.overdue_days IS NOT NULL THEN 1 ELSE 0 END)/COUNT(*)*100,1),'%')

记录一下CASE WHEN的用法:

CASE WHEN condition THEN result

[WHEN...THEN...]

ELSE result

END

ROUND的用法:round(number,digits)

CONCAT的用法:CONCAT(string1, string2, ...)

https://www.nowcoder.com/practice/ed04f148b63e469e8f62e051d06a46f5?tpId=375&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page

获取指定客户每月的消费额

这个题目需要记录的有:

  • DATE_FORMAT:用于以不同的格式显示日期/时间数据,DATE_FORMAT(date,format),例如:DATE_FORMAT(t.t_time,'%Y-%m')
  • GROUP BY和ORDER BY可以使用别名,即可以使用在SELECT中使用函数等重新命名的列名。
全部评论

相关推荐

11-19 21:35
门头沟学院 Java
1. 为什么需要序列化和反序列化?它们的使用场景是什么?2. Java 实现序列化需要继承哪个接口?3. 给 serialVersionUID 赋值时通常采用什么形式?如果两个类的 UID 不一样会有什么影响?4. 如果子类增加了或修改了属性,serialVersionUID 需要变化吗?不变的话新字段会怎样?5. transient 关键字的作用是什么?被 transient 修饰的字段会怎样使用?6. 使用 new 创建对象时,JVM 会做哪些事情?7. 指针碰撞和空闲列表对应哪类垃圾回收器?哪些回收器用这两种方式分配内存?8. JDK 8 默认的垃圾回收器是哪个?9. 你提到的项目,是你从需求构思到落地全程负责,还是只参与了技术开发?10. 现成的项目技术栈、系统框架、数据库设计你是如何转化成落地技术方案的?过程中遇到过哪些难点?11. 系统需要哪些功能?数据库和框架怎么选型?12. 数据库设计了哪些模型?它们之间怎么关联?13. 交易表怎么设计的?交易状态有几种?已支付和已完成的区别是什么?14. 已支付如何流转到已完成?15. 已支付后若库存不足,状态会回滚成什么?16. 出票失败和已退款两个状态如何区分?它们之间能流转吗?17. 项目中使用 RAG 的具体过程?用它解决了什么问题?18. 用户投资风格在向量库里没有存储,你们如何给不同用户提供定制化回答?19. 用户登录时标签如何缓存到 Redis?问答时如何结合标签做向量化提取?20. 如果用户标签为“稳健型”但近期交易激进,你们会动态调整吗?21. 训练金融大模型时,用户行为数据打算从哪些方面采集?如何喂给模型?22. 除了交易行为,还有哪些数据可用来分析用户投资风格?23. 如何校验 AI 生成结果的准确性?24. 你刚才提到的技术已在项目里落地了吗?25. 对 AI 技术的学习思路是什么?通过哪些途径了解最新技术?26. 你经常使用哪些 AI 工具?
查看26道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务