MySQL每日一练
文章平均质量分 66
伪编辑科学家
喜欢研究数据分析和数据管理。从零开始的小白博主。
展开
-
[每日一练]合作过至少三次的演员和导演的查询
遇到这种问题,显而易见的是要先进行分组,导演和演员的分组,然后查询按照导演和演员的分组出现过三次的组合。即先查询,在用group by分组,最后用having进行分组后条件筛选即可。原创 2024-07-05 20:30:52 · 337 阅读 · 0 评论 -
[每日一练]update和case-when语句联合实现条件更新
该题目来源于力扣:.原创 2024-06-18 20:06:23 · 275 阅读 · 0 评论 -
[每日一练]利用子查询查询出现一次的最大数字
要实现两个主要的需求:返回最大的唯一值,不是唯一值返回空值。这时候可以想到利用子查询来做这道题:首先查询num的最大值来自于已经查询过的唯一值的一串数据,如果有唯一值,num的最大值便会从这个子查询中查找相应的数据,而如果都是重复值,那么子查询中返回的都是空值,那么max(num)查询返回的也是空值,算是一个特性吧。注意给要查询的值和子查询的值都要起别名,否则会报错。原创 2024-06-18 19:38:40 · 186 阅读 · 0 评论 -
[每日一练]利用CASE...WHEN 语句实现三角形查询
CASE...WHEN 属于MySQL的DQL语句,可以执行类似if else类型多条件查询。在 SQL 中,(x, y, z)是该表的主键列。对每三个线段报告它们是否可以形成一个三角形。什么是case...when语句?该表的每一行包含三个线段的长度。查询结果格式如下所示。原创 2024-06-13 10:53:34 · 169 阅读 · 0 评论 -
[每日一练]销售员查询
表:sales_id 是该表的主键列(具有唯一值的列)。该表的每一行都显示了销售人员的姓名和 ID ,以及他们的工资、佣金率和雇佣日期。表:Companycom_id 是该表的主键列(具有唯一值的列)。该表的每一行都表示公司的名称和 ID ,以及公司所在的城市。表:Ordersorder_id 是该表的主键列(具有唯一值的列)。com_id 是 Company 表中 com_id 的外键(reference 列)。原创 2024-06-13 10:29:48 · 1112 阅读 · 0 评论 -
[每日一练]关于MySQL利用排序和分页参数查询最大值
如果再MySQL中想查询最大或最小值,可以利用先排序再展示要求的数据即可。将数据按照customer_number列进行分组,然后统计分组后customer_number列的频数,升序排序,最后再limit的分页参数里输入你要查询的前几个数据。customer_number 为 '3' 的顾客有两个订单,比顾客 '1' 或者 '2' 都要多,因为他们只有一个订单。所以结果是该顾客的 customer_number ,也就是 3。在 SQL 中,Order_number是该表的主键。查询结果格式如下所示。原创 2024-06-10 15:04:50 · 366 阅读 · 0 评论 -
[每日一练]查询员工奖金(左连接的使用)
表的所有内容,所以要用到左或右连接,之后返回的条件为奖金数小于1000以及奖金为null值的数据。这里我使用了左连接(因为employee表在左边)来保留该表的全部数据。该表的每一行都表示员工的姓名和 id,以及他们的工资和经理的 id。该表的每一行都包含一个员工的 id 和他们各自的奖金。首先要对两个表进行连接查询,可以很轻易的知道我们要保留。empId 是该表中具有唯一值的列。empId 是该表具有唯一值的列。编写解决方案,报告每个奖金。的员工的姓名和奖金数额。原创 2024-06-07 00:24:20 · 1009 阅读 · 0 评论 -
[每日一练]查询用户第一次登陆的时间
每行数据记录了一名玩家在退出平台之前,当天使用同一台设备登录平台后打开的游戏的数目(可能是 0 个)。在 SQL 中,表的主键是 (player_id, event_date)。第一次登陆的日期,就是登陆时间列的最小值。分组后查询最小值即可。这张表展示了一些游戏玩家在游戏平台上的行为活动。简单的分组聚合问题。原创 2024-06-04 14:48:16 · 397 阅读 · 1 评论 -
[每日一练]关于上升的温度查询
在自连接后,首先用dateidff函数判断日期列相邻的差距不超过1,然后判断两个自己那个温度更高,最后返回ID。编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的。2015-01-02 的温度比前一天高(10 -> 25)2015-01-04 的温度比前一天高(20 -> 30)没有具有相同 recordDate 的不同行。看到相邻两个字,首先要想到自连接。id 是该表具有唯一值的列。该表包含特定日期的温度信息。这是要比较相日期的温度。结果格式如下例子所示。原创 2024-06-03 09:25:37 · 431 阅读 · 0 评论 -
[每日一练]利用自连接删除重复邮箱的用户
但这并不符合条件,我们需要的不是最小的ID,而是需要邮箱去重后的最小ID,这是,我们可以在后续添加一个邮箱对等的条件,即可配合前边的最小ID条件,实现需求。为什么呢,因为我们吧Person表进行了自己对自己的比较,前者为A,后者为B,利用删除语句,删除A比B大的所有ID,即只保留最小的ID“1”我们保留最小的Id = 1。首先题目要求我们去重后保留较小的ID,我们可以使用自连接来排除大的ID。该表的每一行包含一封电子邮件。所有重复的电子邮件,只保留一个具有最小。id 是该表的主键列(具有唯一值的列)。原创 2024-05-30 10:49:28 · 247 阅读 · 0 评论 -
[每日一练]查询从不订购的客户(标量子查询)
已知这两个表是有外键连接的,是ID列,所有我们可以直接对两个表进行子查询。这里我们可以发现:这两个表通过customerId和id是连接起来了,我们可以从这两个字段入手进行子查询。customerId 是 Customers 表中 ID 的外键( Pandas 中的连接键)。该表的每一行都表示订单的 ID 和订购该订单的客户的 ID。该表的每一行都表示客户的 ID 和名称。在 SQL 中,id 是该表的主键。在 SQL 中,id 是该表的主键。找出所有从不点任何东西的顾客。原创 2024-05-29 19:27:58 · 519 阅读 · 0 评论 -
[每日一练]查询出现过一次的邮箱
这俩需要用到我们对数据进行查询,查询的区域没有要求,所以WHERE函数可以不需要,数据需要记得数,所以要对数据进行分组,需要GROUP BY参数,对查询的数据有类型要求,需要在分组参数后添加一个Having参数来统计数量。编写解决方案来报告所有重复的电子邮件。请注意,可以保证电子邮件字段不为 NULL。此表的每一行都包含一封电子邮件。电子邮件不包含大写字母。id 是该表的主键(具有唯一值的列)。a@b.com 出现了两次。原创 2024-05-29 18:58:06 · 329 阅读 · 0 评论 -
[每日一练]利用自连接实现超过经理工资的员工查询
关于自连接的使用和查询顺序的解释原创 2024-05-25 09:15:16 · 559 阅读 · 0 评论