
leetcode-mysql 2021-04-30
发布日期:2021-05-07 05:14:52
浏览次数:42
分类:精选文章
本文共 2869 字,大约阅读时间需要 9 分钟。
来源: & 【侵删】
again (shame on me)最近两天的事情有点多,暂时经常练习了但是没有将对应的内容搬到这里来;
ExampleA:()
用户表: Users
+---------------+---------+| Column Name | Type |+---------------+---------+| user_id | int || name | varchar || mail | varchar | +---------------+---------+user_id (用户 ID)是该表的主键。这个表包含用户在某网站上注册的信息。有些邮箱是无效的。写一条 SQL 语句,查询拥有有效邮箱的用户。
有效的邮箱包含符合下列条件的前缀名和域名:
前缀名是包含字母(大写或小写)、数字、下划线 '_'、句点 '.' 和/或横杠 '-' 的字符串。前缀名必须以字母开头。
域名是 '@leetcode.com' 。 按任意顺序返回结果表。
查询格式如下所示:
Users+---------+-----------+-------------------------+| user_id | name | mail |+---------+-----------+-------------------------+| 1 | Winston | winston@leetcode.com || 2 | Jonathan | jonathanisgreat || 3 | Annabelle | bella-@leetcode.com || 4 | Sally | sally.come@leetcode.com || 5 | Marwan | quarz#2020@leetcode.com || 6 | David | david69@gmail.com || 7 | Shapiro | .shapo@leetcode.com |+---------+-----------+-------------------------+
结果表:
+---------+-----------+-------------------------+| user_id | name | mail |+---------+-----------+-------------------------+| 1 | Winston | winston@leetcode.com || 3 | Annabelle | bella-@leetcode.com || 4 | Sally | sally.come@leetcode.com |+---------+-----------+-------------------------+2 号用户的邮箱没有域名。 5 号用户的邮箱包含非法字符 #。 6 号用户的邮箱的域名不是 leetcode。 7 号用户的邮箱以句点(.)开头。
解题思路(mysql的正则 regexp)
select * from users where mail regexp '^[a-zA-A]+[a-zA-Z0-9_\\./\\-]*@leetcode\\.com$';
ExampleB:
活动表 Activity:
+--------------+---------+| Column Name | Type |+--------------+---------+| player_id | int || device_id | int || event_date | date || games_played | int |+--------------+---------+表的主键是 (player_id, event_date)。这张表展示了一些游戏玩家在游戏平台上的行为活动。每行数据记录了一名玩家在退出平台之前,当天使用同一台设备登录平台后打开的游戏的数目(可能是 0 个)。
写一条 SQL 查询语句获取每位玩家 第一次登陆平台的日期。
查询结果的格式如下所示:
Activity 表:
+-----------+-----------+------------+--------------+| player_id | device_id | event_date | games_played |+-----------+-----------+------------+--------------+| 1 | 2 | 2016-03-01 | 5 || 1 | 2 | 2016-05-02 | 6 || 2 | 3 | 2017-06-25 | 1 || 3 | 1 | 2016-03-02 | 0 || 3 | 4 | 2018-07-03 | 5 |+-----------+-----------+------------+--------------+
Result 表:
+-----------+-------------+| player_id | first_login |+-----------+-------------+| 1 | 2016-03-01 || 2 | 2017-06-25 || 3 | 2016-03-02 |+-----------+-------------+
解题思路(第一种:窗口函数 第二种:min group by)
select distinct player_id,min(event_date) over(partition by player_id) as first_login from Activity; 【第一种窗口函数】
select player_id, min(event_date) as first_login from Activity group by player_id; 【min group by】
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月10日 13时52分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【计算机网络】应用层
2021-05-09
【Maven】POM基本概念
2021-05-09
【Java思考】Java 中的实参与形参之间的传递到底是值传递还是引用传递呢?
2021-05-09
【设计模式】单例模式
2021-05-09
【Linux】2.3 Linux目录结构
2021-05-09
java.util.Optional学习笔记
2021-05-09
远程触发Jenkins的Pipeline任务的并发问题处理
2021-05-09
Web应用程序并发问题处理的一点小经验
2021-05-09
entity framework core在独立类库下执行迁移操作
2021-05-09
Asp.Net Core 2.1+的视图缓存(响应缓存)
2021-05-09
没花一分钱的我竟然收到的JetBrains IDEA官方免费赠送一年的Licence
2021-05-09
RE套路 - 关于pyinstaller打包文件的复原
2021-05-09
【wp】HWS计划2021硬件安全冬令营线上选拔赛
2021-05-09
Ef+T4模板实现代码快速生成器
2021-05-09
c++ static笔记
2021-05-09
C++中头文件相互包含与前置声明
2021-05-09
JQuery选择器
2021-05-09
SQL--存储过程
2021-05-09
MVC学习系列5--Layout布局页和RenderSection的使用
2021-05-09
多线程之volatile关键字
2021-05-09