基础50题

聚合函数

  • 项目员工,连接 + avg + group by
  • 各项函数用户的注册率:直接单表操作,count函数的使用,结合round进行保留小数。
  • 1211. 查询结果的质量和占比:简单的avg, sum(if(,,))的使用
  • 1193. 每月交易 I:年月日期函数的应用。data_format(date, '%Y-%m')获取类似01 02的这种月份。
  • 550. 游戏玩法分析 IV:连接后where过滤,on其实也可以起到过滤的作用。不过最好用where进行过滤。
  • 1174. 即时食物配送 II:每一行加上一个最小值列,然后让配送时间等于最小值列的时间,选出这个的数量 / 不同用户的数量。

排序和分组

1045. 买下所有产品的客户:简单分组, having子句过滤

619. 只出现一次的最大数字:子查询 + 分组 + 过滤

1729. 求关注者的数量:排序

596. 超过5名学生的课

1084. 销售分析III:distinct的使用,可以从数量上进行统计。在这个区间的数量等于总的数量。

  • having count(sale_date between '' and '' or null)注意如果为空的情况

1141. 查询近30天活跃用户数:datadiff和<=处理时间

2356. 每位教师所教授的科目种类的数量:分类计数,分类计数,分类计数。使用group by。

子查询

  • 换座位:和最小的进行比较,然后使用case when进行选择
  • 部门排名前3的薪水

高级连接查询

子查询

小结

行列转换:

  • union :纵向,可以统计一行,然后union起来。

  • join: 横向,可以统计一列,然后通过rowId或者其他连接点,连接起来。

01-01 08:16