力扣高频SQL50题(基础版)——第七天

力扣高频SQL50题(基础版)——第七天

1 查询结果的质量与占比

1.1 题目内容

1.1.1 基本题目信息

力扣高频SQL50题(基础版)——第七天_第1张图片

1.1.2 示例输入输出

力扣高频SQL50题(基础版)——第七天_第2张图片

1.2 示例sql语句

SELECT q.query_name,ROUND(AVG(q.rating/q.position),2) quality, 
      ROUND(100*(SELECT count(*) FROM Queries WHERE rating<3 AND query_name=q.query_name)/count(*),2) poor_query_percentage
FROM Queries q
GROUP BY q.query_name

1.3 运行截图

力扣高频SQL50题(基础版)——第七天_第3张图片

2 每月交易Ⅰ

2.1 题目内容

2.1.1 基本题目信息

力扣高频SQL50题(基础版)——第七天_第4张图片

2.1.2 示例输入输出

力扣高频SQL50题(基础版)——第七天_第5张图片

2.2 示例sql语句

WITH T as
(
    SELECT id,country,state,amount,DATE_FORMAT(trans_date,'%Y-%m') month
    FROM Transactions
)
SELECT month,country,count(*) trans_count,
       count(IF(state='approved',1,null)) approved_count,
       SUM(amount) trans_total_amount,
       SUM(IF(state='approved',amount,0)) approved_total_amount
FROM T
GROUP BY month,country

2.3 运行截图

力扣高频SQL50题(基础版)——第七天_第6张图片

3 即时食物配送Ⅱ

3.1 题目内容

3.1.1 基本题目信息

力扣高频SQL50题(基础版)——第七天_第7张图片

3.1.2 示例输入输出

力扣高频SQL50题(基础版)——第七天_第8张图片

3.2 示例sql语句

WITH T as
(
    SELECT t2.*
    FROM
    (
        SELECT *,rank() over(partition by customer_id ORDER BY order_date asc) rk
        FROM Delivery
    )t2
    WHERE t2.rk=1
)
SELECT ROUND(100*count(IF(order_date=customer_pref_delivery_date,1,null))/count(*),2)  immediate_percentage 
FROM T

3.3 运行截图

力扣高频SQL50题(基础版)——第七天_第9张图片

你可能感兴趣的:(力扣高频SQL50题(基础版),leetcode,mysql,查询结果的质量和占比,每月交易Ⅰ,即时食物配送Ⅱ)