
大数据
文章平均质量分 77
掉进悬崖的狼
世界上并没有完美的程序,
但我们并不因此而沮丧,
因为写程序本来就是一个不断追求完美的过程。
你可以不够优秀,但不要甘于平凡。
展开
-
SQL-leetcode—1327. 列出指定时间段内所有的下单产品
表: Productsproduct_id 是该表主键(具有唯一值的列)。该表包含该公司产品的数据。表: Orders该表可能包含重复行。product_id 是表单 Products 的外键(reference 列)。unit 是在日期 order_date 内下单产品的数目。写一个解决方案,要求获取在 2020 年 2 月份下单的数量不少于 100 的产品的名字和数目。返回结果表单的 顺序无要求。查询结果的格式如下。原创 2025-02-08 16:23:02 · 729 阅读 · 0 评论 -
某节面试题②—前80%的id
mysql> select * from a;±—±-----+| id | cnt |±—±-----+| 1 | 10 || 2 | 20 || 3 | 30 || 4 | 40 || 5 | 50 || 6 | 70 || 7 | 60 || 8 | 80 |±—±-----+8 rows in set (0.00 sec)±—+| id |±—+| 8 || 6 || 7 || 5 || 4 |±—原创 2025-02-08 14:56:43 · 509 阅读 · 0 评论 -
SQL-leetcode—1321. 餐馆营业额变化增长
表: Customer在 SQL 中,(customer_id, visited_on) 是该表的主键。该表包含一家餐馆的顾客交易数据。visited_on 表示 (customer_id) 的顾客在 visited_on 那天访问了餐馆。amount 是一个顾客某一天的消费总额。你是餐馆的老板,现在你想分析一下可能的营业额变化增长(每天至少有一位顾客)。计算以 7 天(某日期 + 该日期前的 6 天)为一个时间段的顾客消费平均值。原创 2025-02-07 18:41:54 · 872 阅读 · 0 评论 -
某团面试题①—kudu读写流程
为什么会有kudu?先贴一个经典的图。kudu诞生之前大数据的主要2种方式存储静态数据以hdfs引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景,缺点是实现随机读写性能差,更新数据难动态数据以Hbase为代表作为存储引擎,适用于大数据随机读写的场景,缺点是大批量读取吞吐量远不如hdfs,不适用批量数据分析的场景。要实现大批量的读写,随机读写有比较弱,要随机读写+更新,吞吐量有不行,当时的处理策略是,使用两套集群来使用兼顾。原创 2025-02-07 17:06:20 · 989 阅读 · 0 评论 -
SQL-leetcode—1280. 学生们参加各科测试的次数
学生表: Students在 SQL 中,主键为 student_id(学生ID)。该表内的每一行都记录有学校一名学生的信息。科目表: Subjects在 SQL 中,主键为 subject_name(科目名称)。每一行记录学校的一门科目名称。考试表: Examinations这个表可能包含重复数据(换句话说,在 SQL 中,这个表没有主键)。学生表里的一个学生修读科目表里的每一门科目。原创 2025-02-06 16:51:31 · 798 阅读 · 0 评论 -
SQL-leetcode—1251. 平均售价
表:Prices(product_id,start_date,end_date) 是 prices 表的主键(具有唯一值的列的组合)。prices 表的每一行表示的是某个产品在一段时期内的价格。每个产品的对应时间段是不会重叠的,这也意味着同一个产品的价格时段不会出现交叉。表:UnitsSold该表可能包含重复数据。该表的每一行表示的是每种产品的出售日期,单位和产品 id。编写解决方案以查找每种产品的平均售价。原创 2025-02-05 16:50:16 · 720 阅读 · 0 评论 -
SQL-leetcode—1211. 查询结果的质量和占比
Queries 表:此表可能有重复的行。此表包含了一些从数据库中收集的查询信息。“位置”(position)列的值为 1 到 500。“评分”(rating)列的值为 1 到 5。评分小于 3 的查询被定义为质量很差的查询。将查询结果的质量 quality 定义为:各查询结果的评分与其位置之间比率的平均值。将劣质查询百分比 poor_query_percentage 定义为:评分小于 3 的查询结果占全部查询结果的百分比。原创 2025-02-05 15:11:31 · 576 阅读 · 0 评论 -
SQL-leetcode—1204. 最后一个能进入巴士的人
表: Queueperson_id 是这个表具有唯一值的列。该表展示了所有候车乘客的信息。表中 person_id 和 turn 列将包含从 1 到 n 的所有数字,其中 n 是表中的行数。turn 决定了候车乘客上巴士的顺序,其中 turn=1 表示第一个上巴士,turn=n 表示最后一个上巴士。weight 表示候车乘客的体重,以千克为单位。有一队乘客在等着上巴士。然而,巴士有1000 千克 的重量限制,所以其中一部分乘客可能无法上巴士。原创 2025-02-05 11:45:02 · 1022 阅读 · 0 评论 -
SQL-leetcode—1193. 每月交易 I
表:Transactionsid 是这个表的主键。该表包含有关传入事务的信息。state 列类型为 [“approved”, “declined”] 之一。编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。以 任意顺序 返回结果表。查询结果格式如下所示。原创 2025-01-23 12:16:17 · 794 阅读 · 0 评论 -
SQL-leetcode—1179. 重新格式化部门表
表 Department:在 SQL 中,(id, month) 是表的联合主键。这个表格有关于每个部门每月收入的信息。月份(month)可以取下列值 [“Jan”,“Feb”,“Mar”,“Apr”,“May”,“Jun”,“Jul”,“Aug”,“Sep”,“Oct”,“Nov”,“Dec”]。重新格式化表格,使得 每个月 都有一个部门 id 列和一个收入列。以 任意顺序 返回结果表。结果格式如以下示例所示。原创 2025-01-22 18:00:06 · 1106 阅读 · 0 评论 -
SQL-leetcode—1174. 即时食物配送 II
配送表: Deliverydelivery_id 是该表中具有唯一值的列。该表保存着顾客的食物配送信息,顾客在某个日期下了订单,并指定了一个期望的配送日期(和下单日期相同或者在那之后)。如果顾客期望的配送日期和下单日期相同,则该订单称为 「即时订单」,否则称为「计划订单」。「首次订单」是顾客最早创建的订单。我们保证一个顾客只会有一个「首次订单」。编写解决方案以获取即时订单在所有用户的首次订单中的比例。保留两位小数。原创 2025-01-22 17:14:36 · 773 阅读 · 0 评论 -
SQL-leetcode—1164. 指定日期的产品价格
产品数据表: Products(product_id, change_date) 是此表的主键(具有唯一值的列组合)。这张表的每一行分别记录了 某产品 在某个日期 更改后 的新价格。编写一个解决方案,找出在 2019-08-16 时全部产品的价格,假设所有产品在修改前的价格都是 10。以 任意顺序 返回结果表。结果格式如下例所示。原创 2025-01-22 16:13:51 · 511 阅读 · 0 评论 -
SQL-leetcode—1158. 市场分析 I
表: Usersuser_id 是此表主键(具有唯一值的列)。表中描述了购物网站的用户信息,用户可以在此网站上进行商品买卖。表: Ordersorder_id 是此表主键(具有唯一值的列)。item_id 是 Items 表的外键(reference 列)。(buyer_id,seller_id)是 User 表的外键。表:Itemsitem_id 是此表的主键(具有唯一值的列)。原创 2025-01-22 15:13:25 · 672 阅读 · 0 评论 -
SQL-leetcode—1148. 文章浏览 I
Views 表:此表可能会存在重复行。(换句话说,在 SQL 中这个表没有主键)此表的每一行都表示某人在某天浏览了某位作者的某篇文章。请注意,同一人的 author_id 和 viewer_id 是相同的。请查询出所有浏览过自己文章的作者结果按照 id 升序排列。查询结果的格式如下所示:示例 1:输入:Views 表:输出:±-----+| id |±-----+| 4 || 7 |±-----+原创 2025-01-21 17:57:14 · 462 阅读 · 0 评论 -
SQL-leetcode—1141. 查询近30天活跃用户数
表:Activity该表没有包含重复数据。activity_type 列是 ENUM(category) 类型, 从 (‘open_session’, ‘end_session’, ‘scroll_down’, ‘send_message’) 取值。该表记录社交媒体网站的用户活动。注意,每个会话只属于一个用户。编写解决方案,统计截至 2019-07-27(包含2019-07-27),近 30 天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)。原创 2025-01-21 17:49:41 · 741 阅读 · 0 评论 -
SQL-leetcode—1084. 销售分析 III
表: Productproduct_id 是该表的主键(具有唯一值的列)。该表的每一行显示每个产品的名称和价格。表:Sales这个表可能有重复的行。product_id 是 Product 表的外键(reference 列)。该表的每一行包含关于一个销售的一些信息。编写解决方案,报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品。以 任意顺序 返回结果表。结果格式如下所示。原创 2025-01-20 19:59:40 · 982 阅读 · 0 评论 -
SQL-leetcode—1075. 项目员工 I
项目表 Project:主键为 (project_id, employee_id)。employee_id 是员工表 Employee 表的外键。这张表的每一行表示 employee_id 的员工正在 project_id 的项目上工作。员工表 Employee:主键是 employee_id。数据保证 experience_years 非空。这张表的每一行包含一个员工的信息。请写一个 SQL 语句,查询每一个项目中员工的 平均 工作年限,精确到小数点后两位。原创 2025-01-17 11:03:00 · 413 阅读 · 0 评论 -
SQL-leetcode—1070. 产品销售分析 III
销售表 Sales:(sale_id, year) 是这张表的主键(具有唯一值的列的组合)。product_id 是产品表的外键(reference 列)。这张表的每一行都表示:编号 product_id 的产品在某一年的销售额。请注意,价格是按每单位计的。产品表 Product:product_id 是这张表的主键(具有唯一值的列)。这张表的每一行都标识:每个产品的 id 和 产品名称。原创 2025-01-16 17:27:20 · 475 阅读 · 0 评论 -
SQL-leetcode—1068. 产品销售分析 I
销售表 Sales:(sale_id, year) 是销售表 Sales 的主键(具有唯一值的列的组合)。product_id 是关联到产品表 Product 的外键(reference 列)。该表的每一行显示 product_id 在某一年的销售情况。注意: price 表示每单位价格。产品表 Product:product_id 是表的主键(具有唯一值的列)。该表的每一行表示每种产品的产品名称。原创 2025-01-16 16:16:16 · 982 阅读 · 0 评论 -
SQL-leetcode—1050. 合作过至少三次的演员和导演
ActorDirector 表:timestamp 是这张表的主键(具有唯一值的列).编写解决方案找出合作过至少三次的演员和导演的 id 对 (actor_id, director_id)示例 1:输入:ActorDirector 表:输出:解释:唯一的 id 对是 (1, 1),他们恰好合作了 3 次。原创 2025-01-16 16:00:45 · 279 阅读 · 0 评论 -
SQL-leetcode—1045. 买下所有产品的客户
Customer 表:该表可能包含重复的行。customer_id 不为 NULL。product_key 是 Product 表的外键(reference 列)。Product 表:product_key 是这张表的主键(具有唯一值的列)。编写解决方案,报告 Customer 表中购买了 Product 表中所有产品的客户的 id。返回结果表 无顺序要求。返回结果格式如下所示。原创 2025-01-16 15:43:39 · 314 阅读 · 0 评论 -
SQL-leetcode—627. 变更性别
Salary 表:id 是这个表的主键(具有唯一值的列)。sex 这一列的值是 ENUM 类型,只能从 (‘m’, ‘f’) 中取。本表包含公司雇员的信息。请你编写一个解决方案来交换所有的 ‘f’ 和 ‘m’ (即,将所有 ‘f’ 变为 ‘m’ ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。注意,你必须仅使用一条 update 语句,且 不能 使用 select 语句。结果如下例所示。原创 2025-01-16 15:25:28 · 338 阅读 · 0 评论 -
SQL-leetcode—626. 换座位
表: Seatid 是该表的主键(唯一值)列。该表的每一行都表示学生的姓名和 ID。ID 序列始终从 1 开始并连续增加。编写解决方案来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。按 id 升序 返回结果表。查询结果格式如下所示。示例 1:输入:Seat 表:输出:解释:请注意,如果学生人数为奇数,则不需要更换最后一名学生的座位。原创 2025-01-16 15:06:10 · 444 阅读 · 0 评论 -
SQL-leetcode—620. 有趣的电影
表:cinemaid 是该表的主键(具有唯一值的列)。每行包含有关电影名称、类型和评级的信息。评级为 [0,10] 范围内的小数点后 2 位浮点数。编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片。返回结果按 rating 降序排列。结果格式如下示例。示例 1:输入:输出:解释:我们有三部电影,它们的 id 是奇数:1、3 和 5。原创 2025-01-16 11:40:50 · 429 阅读 · 0 评论 -
SQL-leetcode—619. 只出现一次的最大数字
MyNumbers 表:该表可能包含重复项(换句话说,在SQL中,该表没有主键)。这张表的每一行都含有一个整数。单一数字 是在 MyNumbers 表中只出现一次的数字。找出最大的 单一数字。如果不存在 单一数字 ,则返回 null。查询结果如下例所示。示例 1:输入:MyNumbers 表:±----+| num |±----+| 8 || 8 || 3 || 3 || 1 || 4 || 5 |原创 2025-01-16 11:24:33 · 257 阅读 · 0 评论 -
SQL-leetcode—608. 树节点
表:Treeid 是该表中具有唯一值的列。该表的每行包含树中节点的 id 及其父节点的 id 信息。给定的结构总是一个有效的树。树中的每个节点可以是以下三种类型之一:“Leaf”:节点是叶子节点。“Root”:节点是树的根节点。“lnner”:节点既不是叶子节点也不是根节点。编写一个解决方案来报告树中每个节点的类型。以 任意顺序 返回结果表。结果格式如下所示。示例 1:输入:±—±-----+±—±-----+±—±-----+原创 2025-01-15 19:13:38 · 474 阅读 · 0 评论 -
SQL-leetcode—607. 销售员
表: SalesPersonsales_id 是该表的主键列(具有唯一值的列)。该表的每一行都显示了销售人员的姓名和 ID ,以及他们的工资、佣金率和雇佣日期。表: Companycom_id 是该表的主键列(具有唯一值的列)。该表的每一行都表示公司的名称和 ID ,以及公司所在的城市。表: Ordersorder_id 是该表的主键列(具有唯一值的列)。原创 2025-01-15 15:32:38 · 919 阅读 · 0 评论 -
SQL-leetcode—602. 好友申请 II :谁有最多的好友
RequestAccepted 表:(requester_id, accepter_id) 是这张表的主键(具有唯一值的列的组合)。这张表包含发送好友请求的人的 ID ,接收好友请求的人的 ID ,以及好友请求通过的日期。编写解决方案,找出拥有最多的好友的人和他拥有的好友数目。生成的测试用例保证拥有最多好友数目的只有 1 个人。查询结果格式如下例所示。示例 1:输入:RequestAccepted 表:输出:±—±----+±—±----+原创 2025-01-15 15:01:21 · 304 阅读 · 0 评论 -
SQL-leetcode-596. 超过 5 名学生的课
表:Stadiumvisit_date 是该表中具有唯一值的列。每日人流量信息被记录在这三列信息中:序号 (id)、日期 (visit_date)、 人流量 (people)每天只有一行记录,日期随着 id 的增加而增加编写解决方案找出每行的人数大于或等于 100 且 id 连续的三行或更多行记录。返回按 visit_date 升序排列 的结果表。查询结果格式如下所示。原创 2025-01-14 17:16:41 · 561 阅读 · 0 评论 -
SQL-leetcode-596. 超过 5 名学生的课
表: Courses(student, class)是该表的主键(不同值的列的组合)。该表的每一行表示学生的名字和他们注册的班级。查询 至少有 5 个学生 的所有班级。以 任意顺序 返回结果表。结果格式如下所示。示例 1:输入:输出:±--------+±--------+±--------+解释:-数学课有 6 个学生,所以我们包括它。-英语课有 1 名学生,所以我们不包括它。原创 2025-01-10 17:51:39 · 299 阅读 · 0 评论 -
SQL-leetcode-595. 大的国家
World 表:name 是该表的主键(具有唯一值的列)。这张表的每一行提供:国家名称、所属大陆、面积、人口和 GDP 值。如果一个国家满足下述两个条件之一,则认为该国是 大国 :面积至少为 300 万平方公里(即,3000000 km2),或者人口至少为 2500 万(即 25000000)编写解决方案找出 大国 的国家名称、人口和面积。按 任意顺序 返回结果表。返回结果格式如下例所示。原创 2025-01-10 17:40:51 · 368 阅读 · 0 评论 -
SQL-leetcode-586. 订单最多的客户
表: Orders在 SQL 中,Order_number是该表的主键。此表包含关于订单ID和客户ID的信息。查找下了 最多订单 的客户的 customer_number。测试用例生成后, 恰好有一个客户 比任何其他客户下了更多的订单。查询结果格式如下所示。示例 1:输入:Orders 表:输出:解释:customer_number 为 ‘3’ 的顾客有两个订单,比顾客 ‘1’ 或者 ‘2’ 都要多,因为他们只有一个订单。原创 2025-01-10 16:30:08 · 203 阅读 · 0 评论 -
SQL-leetcode-585. 2016年的投资
Insurance 表:pid 是这张表的主键(具有唯一值的列)。表中的每一行都包含一条保险信息,其中:pid 是投保人的投保编号。tiv_2015 是该投保人在 2015 年的总投保金额,tiv_2016 是该投保人在 2016 年的总投保金额。lat 是投保人所在城市的纬度。题目数据确保 lat 不为空。lon 是投保人所在城市的经度。题目数据确保 lon 不为空。原创 2025-01-10 14:15:35 · 769 阅读 · 0 评论 -
SQL-leetcode-584. 寻找用户推荐人
表: Customer在 SQL 中,id 是该表的主键列。该表的每一行表示一个客户的 id、姓名以及推荐他们的客户的 id。找出那些 没有被 id = 2 的客户 推荐 的客户的姓名。以 任意顺序 返回结果表。结果格式如下所示。示例 1:输入:Customer 表:输出:±-----+| name |±-----+| Will || Jane || Bill || Zack |±-----+原创 2025-01-10 11:20:29 · 482 阅读 · 0 评论 -
SQL-leetcode-570. 至少有5名直接下属的经理
表: Employeeid 是此表的主键(具有唯一值的列)。该表的每一行表示雇员的名字、他们的部门和他们的经理的id。如果managerId为空,则该员工没有经理。没有员工会成为自己的管理者。编写一个解决方案,找出至少有五个直接下属的经理。以 任意顺序 返回结果表。查询结果格式如下所示。示例 1:输入:Employee 表:输出:±-----+| name |±-----+| John |±-----+原创 2025-01-09 16:34:32 · 383 阅读 · 0 评论 -
SQL-leetcode-550. 游戏玩法分析 IV
Table: Activity±-------------±--------+| Column Name | Type |±-------------±--------+| player_id | int || device_id | int || event_date | date || games_played | int |±-------------±--------+(player_id,event_date)是此表的主键(具有原创 2025-01-09 00:24:38 · 294 阅读 · 0 评论 -
SQL-leetcode-511. 游戏玩法分析
活动表 Activity:在 SQL 中,表的主键是 (player_id, event_date)。这张表展示了一些游戏玩家在游戏平台上的行为活动。每行数据记录了一名玩家在退出平台之前,当天使用同一台设备登录平台后打开的游戏的数目(可能是 0 个)。查询每位玩家 第一次登录平台的日期。原创 2025-01-07 19:38:39 · 372 阅读 · 0 评论 -
SQL-leetcode-262. 行程和用户
表:Tripsid 是这张表的主键(具有唯一值的列)。这张表中存所有出租车的行程信息。每段行程有唯一 id ,其中 client_id 和 driver_id 是 Users 表中 users_id 的外键。status 是一个表示行程状态的枚举类型,枚举成员为(‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’)。表:Usersusers_id 是这张表的主键(具有唯一值的列)。原创 2025-01-06 18:44:50 · 720 阅读 · 0 评论 -
SQL-leetcode-197. 上升的温度
表: Weatherid 是该表具有唯一值的列。没有具有相同 recordDate 的不同行。该表包含特定日期的温度信息编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的 id。返回结果 无顺序要求。结果格式如下例子所示。示例 1:输入:Weather 表:输出:±—+| id |±—+| 2 || 4 |±—+解释:2015-01-02 的温度比前一天高(10 -> 25)原创 2025-01-02 16:18:52 · 800 阅读 · 0 评论 -
SQL-leetcode-196. 删除重复的电子邮箱
表: Personid 是该表的主键列(具有唯一值的列)。该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。编写解决方案 删除 所有重复的电子邮件,只保留一个具有最小 id 的唯一电子邮件。(对于 SQL 用户,请注意你应该编写一个 DELETE 语句而不是 SELECT 语句。(对于 Pandas 用户,请注意你应该直接修改 Person 表。运行脚本后,显示的答案是 Person 表。驱动程序将首先编译并运行您的代码片段,然后再显示 Person 表。原创 2025-01-02 12:32:07 · 557 阅读 · 0 评论