sql面试总结
pia君
菜鸟一枚
展开
-
SQL面试必考——null的统计
题目如下:再用count进行统计时,若使用count(*)或者count(1),不会忽略任何值,则相当于统计行数。count(列名)则统计具体的列,会忽略null值。如count(score)只会统计不为null的个数,而count(id)因为默认无null值,所以相当于统计所有行。avg(score) = sum(score)/count(score) 会忽略null值。因此,ADCE相同,DF相同。...原创 2020-10-15 21:18:51 · 2643 阅读 · 1 评论 -
SQL面试必考——过去一年,一个月
leetcode 1098. 小众书籍筛选出过去一年中订单总量 少于10本 的 书籍 。注意:不考虑 上架(available from)距今 不满一个月 的书籍。并且 假设今天是 2019-06-23 。筛选过去一年,用左连接,on进行筛选,因为有一些书一本没卖,没有订单,左连接能够显示出来。筛选过去一个月,用where,不能用on。因为用左连接时,on在进行筛选时,只能筛选右边的表,无法筛选左边的表。where可以把整行消除。在进行求和时,用sum()<10,无法包含null值,因为原创 2020-10-04 11:00:22 · 513 阅读 · 0 评论 -
SQL面试必考——计算留存率
leetcode 1097. 游戏玩法分析 V计算第一天的留存率法一:窗口函数找到安装游戏的时间,及每个玩家第一次登陆的时间,通过min()+窗口函数,可以既找到最小值,又保留原来的值。(若使用聚合函数group by则只能保留一组数)select player_id, event_date, min(event_date) over(partition by player_id) install_dtfrom Activity;计算第一天的登陆玩家人数,和第二天仍然登原创 2020-10-02 21:17:53 · 4520 阅读 · 2 评论 -
SQL面试必考——update的用法
627. 交换工资ps: 这题不应该叫交换性别吗。。。update用法: update 表名称 set 列名称=新值 where 更新条件;update salaryset sex = if(sex = 'm','f','m');或者update salaryset sex = case when sex = 'm' then 'f' else 'm' end;...原创 2020-09-22 20:33:37 · 378 阅读 · 0 评论 -
SQL面试必考——行转列
力扣618 学生地理信息报告https://leetcode-cn.com/problems/students-report-by-geography/题目:写一个查询语句实现对大洲(continent)列的 透视表 操作,使得每个学生按照姓名的字母顺序依次排列在对应的大洲下面。输出的标题应依次为美洲(America)、亚洲(Asia)和欧洲(Europe)。student表namecontinentJackAmericaPascalEuropeXiAsia原创 2020-09-22 14:00:35 · 250 阅读 · 0 评论