- 博客(266)
- 资源 (1)
- 收藏
- 关注
原创 【SQL】1890. 2020年最后一次登录(简单写法;窗口函数写法)
sql 中, between 边界:闭区间。not between 边界:开区间
2024-04-07 09:24:17
897
1
原创 【SQL】1661. 每台机器的进程平均运行时间 (四种写法;自连接;case when;窗口函数lead();)
lag :用于统计窗口内往上第n行值。 lead :用于统计窗口内往下第n行值。同组内最大最小值确定end time和start time
2024-03-28 11:53:41
1186
原创 【SQL】1581. 进店却未进行过交易的顾客( is null 和 =null 的区别)
`=null` 返回结果是0行; `is null` 返回指定的行数。 MySQL 中 null 不代表任务实际的值,类似于一个未知数。 null 在MySQL中不代表任何值,通过运算符是得不到任何结果的,因此只能用 is null(默认情况)
2024-03-26 10:37:40
479
原创 【SQL】1667. 修复表中的名字(UPPER()、LOWER()、SUBSTRING()、CONCAT())
SQL中字符串截取函数(SUBSTRING);SQL 字母大小写转换函数UPPER()、UCASE()、LOWER()和LCASE()
2024-03-26 10:05:19
640
原创 【SQL】1517. 查找拥有有效邮箱的用户(正则表达式regexp)
正则表达式regexp。^ 开头;$ 结尾;[a-zA-Z0-9_.-]* 匹配0个或多个字母数字下划线 '_' ,点 '.' ,破折号 '-'。
2024-03-25 10:35:32
750
原创 【SQL】1280. 学生们参加各科测试的次数 (笛卡尔积)
笛卡尔积的两种写法: select * from stu,class; 或者 select * from stu cross join class;
2024-03-21 10:32:47
411
原创 【SQL】1141. 查询近30天活跃用户数(常规写法;date_add())
where activity_date between date_add('2019-07-27', interval -29 day) and '2019-07-27'
2024-03-20 10:10:26
964
原创 【SQL】1907. 按分类统计薪水(IF语句;CASE 语句;UNION)
IF语句;CASE WHEN THEN ELSE END 语句;UNION
2024-03-18 11:15:35
1575
原创 【SQL】1341. 电影评分(分组求解+合并union all;order by 多字段排序)
分组求解+合并union all;order by 多字段排序
2024-03-18 10:23:02
581
原创 【SQL】1174. 即时食物配送 II (窗口函数row_number; group by写法;对比;定位错因)
写法一:窗口函数 row_number() 分组排序。写法二:group by 正确写法,多种错误示例,定位错误原因。
2024-03-17 12:20:10
686
1
原创 【SQL】1193. 每月交易 I 【年月日(日期)拼接相关函数】
- year(): 截取年份; - month():截取月份; - day(): 截取日期; - concat():字符串拼接; - LPAD(): 在月份前补齐0,确保月份是两位数。 - DATE_FORMAT():格式化日期。 - DATE_FORMAT('2018-12-23', '%Y-%m')
2024-03-16 09:27:10
664
原创 【SQL】1204. 最后一个能进入巴士的人(窗口函数;自连接)
自连接和笛卡尔积连接的区别:笛卡尔积连接不设置连接条件;自连接需要通过”where"关键字来设置连接条件
2024-03-15 10:57:48
525
原创 【SQL】1084. 销售分析III (多种解法;is null 和 =null 的区别图示 )
记录自己的错误点:用法:is null (而不是 = null)(虽然不报错,但是检索不出来)。思路:“所有售出日期都在这个时间内”,也就是“在这个时间内售出的商品数量等于总商品数量” 思路:如何确定某product_id是否也在除了2019年春季之外的时间也销售?思路:最小的日期,最大的日期,都在2019-01-01至2019-03-31之间。
2024-03-14 10:41:43
1266
原创 【SQL】1070. 产品销售分析 III(窗口函数)
记录自己的错误点: 执行顺序是先group by product_id,会直接取相同product的第一行,此时order by year就失效了。
2024-03-13 11:05:48
578
原创 【SQL】602. 好友申请 II: 谁有最多的好友(union all )
- 取整行的时候:排序+limit - 取最值的时候:、max(col),只能保证col这一列中最大值,而不是完整的相对应的行。
2024-03-12 11:28:30
559
原创 【SQL】601. 体育馆的人流量(with as 临时表;id减去row_number()思路)
关键:如何确定id是连续的三行或更多行记录。多重嵌套。with as 临时空间+ `id - row_number()`
2024-03-11 10:48:40
771
原创 【SQL】185. 部门工资前三高的所有员工(窗口函数dense_rank();区分rank()、row_number())
图示,区分窗口函数rank()、dense_rank()、row_number()
2024-03-10 09:51:38
443
原创 【SQL】550. 游戏玩法分析 IV (关键点:确定连续两次登录)
- `DATEDIFF(col1, col2) = 1` - `DATE_ADD(MIN(col), INTERVAL 1 DAY)` - `ROUND(3.1415926,3)` ==> 四舍五入得到 3.142
2024-03-09 16:19:23
1000
原创 【SQL】1045. 买下所有产品的客户(group by + having,对比:窗口函数row_number())
最近用窗口函数有点上头,这题得去重,窗口函数不适用,还是写了一下,仅通过4/9个测试用例。
2024-03-04 14:03:46
648
原创 【SQL】1321. 餐馆营业额变化增长(窗口函数rows between 、range between;DATEDIFF()函数)
date_add(A.visited_on, interval 6 day) # 在A.visited_on的日期基础上,加上6天。最后再按照visited_on字段分组(group by B.cisited_on),并用聚合函数SUM()计算总额及平均额等。rows between 控制窗口函数的范围,使用rows between可以根据自己的需求任意的控制窗口函数的范围。解析:B表是为了得到结果集当中的visited_on字段的所有值。
2024-03-03 15:43:48
601
原创 【SQL】619. 只出现一次的最大数字 (知识点学习:mysql order by 多个字段排序)
总结:(1)在MySql中,使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。(2)尤其非常特别重要:默认按升序(ASC)排列。(3)order by 后可加2个(或多个)字段,字段之间用英文逗号隔开。(4)(5)(6)多个字段时,优先级按先后顺序而定。
2024-03-02 10:25:46
543
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人