mysql基础语法面试题

sql语法面试题记录

  • 窗口函数在sql执行流程中处于哪一步?
  • order by的执行顺序是哪一步?DISTINCT的执行顺序是哪一步?
  • order by中的排序字段必须是select中选择的字段吗?如果可以的话,那么继续对这个字段做DISTINCT去重操作可以吗?

基础语法题目推荐

大厂真题推荐

每个月Top3的周杰伦歌曲

推荐理由:三表左连接、多表查询、范围查询、多字段分组、时间函数、排名窗口函数

分析客户逾期情况

推荐理由:左连接、分组、聚合函数处理分组字段

获取客户每月消费额

推荐理由:时间处理函数

推荐内容准确的用户平均评分

推荐理由:exists的应用

每个商品的销售总额

推荐理由:内连接、分组、聚合函数处理分组字段,排名窗口函数

连续登录的用户

推荐理由,公用表达式拆分物化子查询求解,拆解过程如下

  • 使用内连接/in/exists来获取到近期等过的用户-登录时间维度的临时表tmp1
  • 对临时表tmp1通过用户+日期来进行分组,并通过窗口函数根据日期降序的方式获取到rank字段,这个rank字段即该用户在当天根据访问时间降序排列的名次,将用户,登录时间,rank三个字段组成临时表tmp2
  • 主查询中,直接获取临时表中全部rank大于3的数据,并对userId去重

统计用户从访问下单到转化率

  • 使用in或exists,获取下过订单用户的相关访客数据,将访客id和访问时间组成临时表tmp1
  • 根据tmp1按天统计当天下单客户的总量,并组成tmp2
  • 取visit_tb表,根据时间分组,获取当天时间全部的访客,注意这里是按天级别的时间分组的,因为同一个访客在同一天可能多次访问,需要去重访客id,按天统计当天下全部访客的总量,组成tmp3
  • tmp2和tmp3根据时间连表,计算转换率

网易云音乐推荐

  • 多个子查询结果集作为查询条件
  • 子查询结果集作为临时表tmp来和其它表做内连接查询并根据某字段降序
  • select的字段中没有包括排序字段,所以排序字段作为select的隐藏字段,导致select的字段无法直接做distinct去重操作,所以同时对隐藏字段和目标字段做distinct,生成第二个临时表tmp2,最终从tmp2中取出结果
相关推荐
镜象科技4 分钟前
中小学AI心理健康解决方案服务商怎么选?2026年选型参考
android·java·人工智能
阿狗童鞋10 分钟前
高并发系统设计实战指南
java·spring boot·spring cloud
Sam_Deep_Thinking15 分钟前
CountDownLatch实现原理
java·后端·面试·程序员
小狼Solar17 分钟前
SAP MDG 功能范围说明(基于S/4HANA 2025)
java·开发语言
范中勤18 分钟前
Python 与 Java:模块、包、对象、反射核心差异总结
java·python·面试·反射·元类
ab12376820 分钟前
Spring Integration 完整笔记 + 和 spring-integration-mqtt、Paho、EMQX 的关系
java·笔记·spring
字节跳动的猫22 分钟前
LikeShop 种草社区模块二开:笔记发布、话题广场与商品挂载实现
数据结构·数据库
IvorySQL23 分钟前
PostgreSQL 日报| PostgreSQL JDBC 安全更新(10 月 10 日)
数据库·postgresql·区块链
小蜗牛狂飙记25 分钟前
java环境一键配置和切换的ui工具
java
逆光的July29 分钟前
可靠消息投递与消费的工程设计:Outbox、幂等、死信兜底
java