Leetcode 262. 行程和用戶

1.題目基本信息

1.1.題目描述

表:Trips

+-------------+----------+

| Column Name | Type |

+-------------+----------+

| id | int |

| client_id | int |

| driver_id | int |

| city_id | int |

| status | enum |

| request_at | varchar |

+-------------+----------+

id 是這張表的主鍵(具有唯一值的列)。

這張表中存所有出租車的行程信息。每段行程有唯一 id ,其中 client_id 和 driver_id 是 Users 表中 users_id 的外鍵。

status 是一個表示行程狀態的枚舉類型,枚舉成員為(‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’) 。

表:Users

+-------------+----------+

| Column Name | Type |

+-------------+----------+

| users_id | int |

| banned | enum |

| role | enum |

+-------------+----------+

users_id 是這張表的主鍵(具有唯一值的列)。

這張表中存所有用戶,每個用戶都有一個唯一的 users_id ,role 是一個表示用戶身份的枚舉類型,枚舉成員為 (‘client’, ‘driver’, ‘partner’) 。

banned 是一個表示用戶是否被禁止的枚舉類型,枚舉成員為 (‘Yes’, ‘No’) 。

取消率 的計算方式如下:(被司機或乘客取消的非禁止用戶生成的訂單數量) / (非禁止用戶生成的訂單總數)。

編寫解決方案找出 "2013-10-01" 至 "2013-10-03" 期間有 至少 一次完整行程的非禁止用戶(乘客和司機都必須未被禁止)的 取消率。非禁止用戶即 banned 為 No 的用戶,禁止用戶即 banned 為 Yes 的用戶。其中取消率 Cancellation Rate 需要四舍五入保留 兩位小數 。

返回結果表中的數據 無順序要求 。

1.2.題目地址

https://leetcode.cn/problems/trips-and-users/description/

2.解題方法

2.1.解題思路

按日期進行分組聚合

2.2.解題步驟

第一步,根據user_id、client_id、driver_id,將Users表格連接到Trips表格中,得到表格T1

第二步,T1的基礎上使用request_at日期進行分組聚合,統計每組中SUM(client_banned="No" AND driver_banned='No' AND status!="completed")/SUM(client_banned="No" AND driver_banned='No')的比例,記為rate

第三步,從T2中篩選出rate非NULL的記錄,即為題解

3.解題代碼

sql代碼

# Write your MySQL query statement below# 思路:按日期進行分組聚合WITH T1 AS (# 第一步,根據user_id、client_id、driver_id,將Users表格連接到Trips表格中,得到表格T1SELECT client_id, driver_id, status, request_at, u1.banned AS client_banned, u2.banned AS driver_bannedFROM TripsLEFT JOIN Users AS u1 ON Trips.client_id = u1.users_idLEFT JOIN Users AS u2 ON Trips.driver_id = u2.users_id
), T2 AS (# 第二步,T1的基礎上使用request_at日期進行分組聚合,統計每組中SUM(client_banned="No" AND driver_banned='No' AND status!="completed")/SUM(client_banned="No" AND driver_banned='No')的比例,記為rateSELECT request_at AS Day, ROUND(SUM(client_banned = "No" AND driver_banned = 'No' AND status != "completed") / SUM(client_banned = "No" AND driver_banned = 'No'), 2) AS rateFROM T1WHERE request_at >= '2013-10-01' AND request_at <= '2013-10-03'GROUP BY request_at
)# 第三步,從T2中篩選出rate非NULL的記錄,即為題解
SELECT Day, rate AS 'Cancellation Rate'
FROM T2 WHERE rate IS NOT NULL;

4.執行結果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89536.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89536.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89536.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

P1102 A-B 數對

P1102 A-B 數對 題目背景 出題是一件痛苦的事情! 相同的題目看多了也會有審美疲勞,于是我舍棄了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 題目描述 給出一串正整數數列以及一個正整數 C C C,要求計算出所有滿足 A ? B = C A - B = C A?B=C 的數對的個數(不同…

devextreme-vue的DxDataGrid如何顯示行號列

devextreme-vue我使用的是23.2版本&#xff0c;其DxDataGrid如何顯示行號列&#xff0c;官方一直沒有方案。 DataGrid - How to display a row number in data rows in Angular | DevExpress Support dxDataGrid - provide capability to display a column with row numbers …

【設計模式06】建造者模式

前言 沒什么用&#xff0c;類似于builder.build UML類圖 代碼示例 package com.sw.learn.pattern.B_create.e_builder;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();for …

datax-web報錯:連接數據庫失敗. 請檢查您的 賬號、密碼、數據庫名稱、IP、Port或者向 DBA 尋求幫助(注意網絡環境)

文章目錄 一、報錯內容二、解決方法 一、報錯內容 背景描述&#xff1a; 在linux安裝了datax202309版本及datax-web2.1.2版本&#xff0c;datax與datax-web默認都是mysql5.x版本的。我的數據庫是mysql8.x版本的。 在datax中執行json腳本從一個mysql導入mysql沒問題&#xff0…

C#調用C++導出的dll怎么調試進入C++ DLL源碼

第一步&#xff1a;首先需要打開C源碼&#xff0c;不需要任何設置&#xff0c;直接下斷點&#xff0c;然后將生成DLL目錄改成到C# exe生成目錄里面 第二步&#xff1a;打開winform項目&#xff0c;然后在C#項目屬性->啟用本地代碼調試勾選后即可 最后在C#下斷點F10或者F11…

Skyeye 云智能制造辦公系統 - Saas v3.16.10 發布

Skyeye 云智能制造&#xff0c;采用 Springboot (微服務) Layui UNI-APP Ant Design Vue 的低代碼平臺。包含 30 多個應用模塊、50 多種電子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、筆記、知識庫、項目、門店、商城、財務、多班次考勤、薪資、招聘、云售后、論壇、公…

pdf 合并 python實現(已解決)

在Python中&#xff0c;可以使用多種庫來合并PDF文件&#xff0c;其中最常用的是PyPDF2和PyMuPDF&#xff08;又名fitz&#xff09;。下面我將分別介紹如何使用這兩個庫來合并PDF文件。 使用PyPDF2 首先&#xff0c;你需要安裝PyPDF2。可以使用pip來安裝&#xff1a; 先按照庫…

VCenter SSL過期,登錄提示HTTP 500錯誤解決辦法

報錯圖&#xff1a; 1. 開啟 VCenter ssh遠程連接 登錄vmware esxi&#xff0c;雙擊打開VCenter 控制臺黑窗口&#xff0c;根據提示按F2鍵 兩次&#xff0c;打開系統設置&#xff08;有fn鍵使用fnF2鍵&#xff09; 輸入root密碼&#xff0c;按回車登錄 選擇“Troubleshooting …

Linux 下安裝Oracle 11gR2 x64 netca啟動不了

前言 Oracle Network Configuration Assistant (netca) 是 Oracle 提供的圖形化網絡配置工具&#xff0c;用于簡化 Oracle 數據庫網絡組件的配置和管理。 核心功能 1、配置監聽器 (LISTENER)創建、修改或刪除數據庫監聽器&#xff08;默認端口 1521&#xff09;定義監聽協議…

Pytorch1線性代數實現

Pytorch --線性代數實現 矩陣 正如向量將標量從零階推廣到一階&#xff0c;矩陣將向量從一階推廣到二階。 矩陣&#xff0c;我們通常用粗體、大寫字母來表示 &#xff08;例如&#xff0c;&#x1d44b;、&#x1d44c;和&#x1d44d;&#xff09;&#xff0c; 在代碼中表示…

行業分享丨泛亞汽車數字化轉型實踐:虛擬仿真技術如何賦能汽車研發的創新實踐?

隨著汽車行業向智能化、電動化快速轉型&#xff0c;虛擬仿真技術正成為推動產品研發變革的核心驅動力。作為行業技術先鋒&#xff0c;泛亞汽車通過系統性布局&#xff0c;構建了完整的虛擬仿真技術體系&#xff0c;并總結出三個關鍵方向&#xff1a;打造數字化研發體系、探索精…

【硬核數學】4. AI的“尋路”藝術:優化理論如何找到模型的最優解《從零構建機器學習、深度學習到LLM的數學認知》

歡迎來到本系列的第四篇文章。我們已經知道&#xff0c;訓練一個AI模型&#xff0c;本質上是在尋找一組參數&#xff0c;使得描述模型“有多差”的損失函數 L ( θ ) L(\theta) L(θ) 達到最小值。微積分給了我們強大的工具——梯度下降&#xff0c;告訴我們如何一步步地向著最…

springboot切面編程

SpringBoot切面編程 眾所周知&#xff0c;spring最核心的兩個功能是aop和ioc&#xff0c;即面向切面和控制反轉。本文會講一講SpringBoot如何使用AOP實現面向切面的過程原理。 何為AOP AOP&#xff08;Aspect OrientedProgramming&#xff09;&#xff1a;面向切面編程&…

【Redis#4】Redis 數據結構 -- String類型

一、前言 1. 基本概念 理解&#xff1a;字符串對象是 Redis 中最基本的數據類型,也是我們工作中最常用的數據類型。redis中的鍵都是字符串對象&#xff0c;而且其他幾種數據結構都是在字符串對象基礎上構建的。字符串對象的值實際可以是字符串、數字、甚至是二進制&#xff0…

Spring Boot 集成 Dufs 通過 WebDAV 實現文件管理

Spring Boot 集成 Dufs 通過 WebDAV 實現文件管理 引言 在現代應用開發中&#xff0c;文件存儲和管理是一個常見需求。Dufs 是一個輕量級的文件服務器&#xff0c;支持 WebDAV 協議&#xff0c;可以方便地集成到 Spring Boot 應用中。本文將詳細介紹如何使用 WebDAV 協議在 Sp…

Unity打包時編碼錯誤解決方案:NotSupportedException Encoding 437

問題描述 在Unity項目開發過程中&#xff0c;經常會遇到這樣的情況&#xff1a;項目在編輯器模式下運行完全正常&#xff0c;但是打包后運行時卻出現以下錯誤&#xff1a; NotSupportedException: Encoding 437 data could not be found. Make sure you have correct interna…

Spring Bean的生命周期與作用域詳解

一、Spring Bean的生命周期 Spring Bean的生命周期指的是Bean從創建到銷毀的整個過程。理解這個生命周期對于正確使用Spring框架至關重要&#xff0c;它可以幫助我們在適當的時機執行自定義邏輯。 1. 完整的Bean生命周期階段 Spring Bean的生命周期可以分為以下幾個主要階段…

如何將Excel表的內容轉化為json格式呢?

文章目錄 一、前言二、具體操作步驟 一、前言 先說一下我使用Excel表的內容轉為json的應用場景&#xff0c;我們是用來處理國際化的時候用到的。 二、具體操作步驟 第一步&#xff1a;選擇要轉化Excel表的內容&#xff08;必須是key&#xff0c;value形式的&#xff09; 第二…

內存堆棧管理(Linux)

以問題形式講解 1.每一個進程都有一個堆空間嗎&#xff1f;還是多個進程共用一個堆空間&#xff1f; 在操作系統中&#xff0c;??每個進程都有自己獨立的虛擬地址空間&#xff0c;其中包括自己獨占的堆空間。堆空間是進程私有的&#xff0c;不與其他進程共享。 進程之間的內…

ThreatLabz 2025 年人工智能安全報告

AI 應用趨勢&#xff1a;爆發式增長與風險并存 2024 年&#xff0c;全球企業的 AI/ML 工具使用量呈指數級增長。Zscaler 云平臺數據顯示&#xff0c;2024 年 2 月至 12 月期間&#xff0c;AI/ML 交易總量達 5365 億次&#xff0c;同比激增 3464.6%&#xff0c;涉及 800 多個應…