返回介绍

solution / 2200-2299 / 2238.Number of Times a Driver Was a Passenger / README

发布于 2024-06-17 01:03:08 字数 1727 浏览 0 评论 0 收藏 0

2238. 司机成为乘客的次数

English Version

题目描述

表: Rides

+--------------+------+
| Column Name  | Type |
+--------------+------+
| ride_id    | int  |
| driver_id  | int  |
| passenger_id | int  |
+--------------+------+
ride_id 是该表的主键(具有唯一值的列)。
该表的每一行都包含驾驶员的 ID 和在 ride_id 中乘车的乘客的 ID。
注意 driver_id != passenger_id。

 

编写解决方案,获取每个司机的 ID 和他们作为乘客的次数。

以 任意顺序 返回结果表。

结果格式如下所示。

 

示例 1:

输入: 
Rides 表:
+---------+-----------+--------------+
| ride_id | driver_id | passenger_id |
+---------+-----------+--------------+
| 1     | 7     | 1      |
| 2     | 7     | 2      |
| 3     | 11    | 1      |
| 4     | 11    | 7      |
| 5     | 11    | 7      |
| 6     | 11    | 3      |
+---------+-----------+--------------+
输出: 
+-----------+-----+
| driver_id | cnt |
+-----------+-----+
| 7     | 2   |
| 11    | 0   |
+-----------+-----+
解释: 
在所有给定的行程中有两名司机: 7 和 11.
ID = 7 的司机曾两次成为乘客。
ID = 11 的司机从来不是乘客。

解法

方法一

# Write your MySQL query statement below
WITH T AS (SELECT DISTINCT driver_id FROM Rides)
SELECT t.driver_id, COUNT(passenger_id) AS cnt
FROM
  T AS t
  LEFT JOIN Rides AS r ON t.driver_id = r.passenger_id
GROUP BY 1;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文