当前位置: 首页 > news >正文

力扣-每天的领导和合伙人

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。

文章目录

  • 前言
  • 一、题目:1693. 每天的领导和合伙人
  • 二、解题
    • 1.正确示范①
      • 提交SQL
      • 运行结果
    • 2.正确示范②
      • 提交SQL
      • 运行结果
    • 3.正确示范③
      • 提交SQL
      • 运行结果
    • 4.正确示范④
      • 提交SQL
      • 运行结果
    • 5.其他
  • 总结


前言


一、题目:1693. 每天的领导和合伙人

表:DailySales

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| date_id     | date    |
| make_name   | varchar |
| lead_id     | int     |
| partner_id  | int     |
+-------------+---------+

该表没有主键。
该表包含日期、产品的名称,以及售给的领导和合伙人的编号。
名称只包含小写英文字母。

写一条 SQL 语句,使得对于每一个 date_id 和 make_name,返回不同的 lead_id 以及不同的 partner_id 的数量。
按 任意顺序 返回结果表。
查询结果格式如下示例所示。

输入:
DailySales 表:
+-----------+-----------+---------+------------+
| date_id   | make_name | lead_id | partner_id |
+-----------+-----------+---------+------------+
| 2020-12-8 | toyota    | 0       | 1          |
| 2020-12-8 | toyota    | 1       | 0          |
| 2020-12-8 | toyota    | 1       | 2          |
| 2020-12-7 | toyota    | 0       | 2          |
| 2020-12-7 | toyota    | 0       | 1          |
| 2020-12-8 | honda     | 1       | 2          |
| 2020-12-8 | honda     | 2       | 1          |
| 2020-12-7 | honda     | 0       | 1          |
| 2020-12-7 | honda     | 1       | 2          |
| 2020-12-7 | honda     | 2       | 1          |
+-----------+-----------+---------+------------+
输出:
+-----------+-----------+--------------+-----------------+
| date_id   | make_name | unique_leads | unique_partners |
+-----------+-----------+--------------+-----------------+
| 2020-12-8 | toyota    | 2            | 3               |
| 2020-12-7 | toyota    | 1            | 2               |
| 2020-12-8 | honda     | 2            | 2               |
| 2020-12-7 | honda     | 3            | 2               |
+-----------+-----------+--------------+-----------------+

解释:
在 2020-12-8,丰田(toyota)有领导者 = [0, 1] 和合伙人 = [0, 1, 2] ,同时本田(honda)有领导者 = [1, 2] 和合伙人 = [1, 2]。
在 2020-12-7,丰田(toyota)有领导者 = [0] 和合伙人 = [1, 2] ,同时本田(honda)有领导者 = [0, 1, 2] 和合伙人 = [1, 2]。

二、解题

1.正确示范①

提交SQL

select date_id,make_name,
count(distinct lead_id) unique_leads,
count(distinct partner_id) unique_partners
from DailySales 
group by date_id,make_name;

运行结果

2.正确示范②

提交SQL

select u1.date_id,u1.make_name,unique_leads,unique_partners
from (select date_id,make_name,count(1) unique_leadsfrom(select distinct date_id,make_name,lead_idfrom DailySales) uu1 group by date_id,make_name
) u1
left join (select date_id,make_name,count(1) unique_partnersfrom(select distinct date_id,make_name,partner_idfrom DailySales) uu2 group by date_id,make_name
) u2 
on u1.date_id=u2.date_id and u1.make_name=u2.make_name;

运行结果

3.正确示范③

提交SQL

select u1.date_id,u1.make_name,unique_leads,unique_partners
from (select date_id,make_name,count(*) unique_leadsfrom(select distinct date_id,make_name,lead_idfrom DailySales) uu1 group by date_id,make_name
) u1
left join (select date_id,make_name,count(*) unique_partnersfrom(select distinct date_id,make_name,partner_idfrom DailySales) uu2 group by date_id,make_name
) u2 
on u1.date_id=u2.date_id and u1.make_name=u2.make_name;

运行结果

4.正确示范④

提交SQL

select u1.date_id,u1.make_name,unique_leads,unique_partners
from (select date_id,make_name,count(lead_id) unique_leadsfrom(select distinct date_id,make_name,lead_idfrom DailySales) uu1 group by date_id,make_name
) u1
left join (select date_id,make_name,count(partner_id) unique_partnersfrom(select distinct date_id,make_name,partner_idfrom DailySales) uu2 group by date_id,make_name
) u2 
on u1.date_id=u2.date_id and u1.make_name=u2.make_name;

运行结果

5.其他


总结

正确示范①思路:
group by date_id,make_name
count(distinct lead_id) unique_leads, count(distinct partner_id) unique_partners
正确示范②思路:
distinct date_id,make_name,lead_id
group by date_id,make_name
得到count(1) unique_leads
distinct date_id,make_name,partner_id
group by date_id,make_name
得到count(1) unique_partners
最后两个结果集关联起来即可;
正确示范③思路:
将示范②中count(1)改为count(*)
正确示范④思路:
将示范②中count(1)分别改为count(lead_id)count(partner_id)
其他:count(1)还可以改为sum(1)

http://www.lryc.cn/news/38395.html

相关文章:

  • 考虑分配与合并,用GO实现GCMarkSweep
  • 浙江大学海宁IMBA提面经验分享
  • Mybatis源码分析系列之第四篇:Mybatis中代理设计模型源码详解
  • JDBC的API详解
  • 【深度强化学习】(4) Actor-Critic 模型解析,附Pytorch完整代码
  • SQL注入——文件上传
  • 【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(新的开篇)”】
  • Uipath Excel 自动化系列18-RefreshPivotTable(刷新透视表)
  • 设计模式之不变模式
  • C++11 map
  • docker基本命令 - 数据卷
  • SQL查漏补缺
  • 偏向锁撤销
  • Qt版海康MV多相机的采集显示程序
  • 2023年江苏省职业院校技能大赛中职网络安全赛项试卷-教师组任务书
  • 零基础小白如何自学网络安全成为顶尖黑客?
  • 外贸建站如何提高搜索引擎排名,吸引更多潜在客户?
  • 计算机网络考研-第一章学
  • 【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令
  • 【人脸识别】ssd + opencv Eigenfaces 和 LBPH算法进行人脸监测和识别
  • PMP项目管理项目成本管理
  • Vue3视频播放器组件Vue3-video-play入门教程
  • 操作系统经典问题——消费者生产者问题
  • 网络安全工程师在面试安全岗位时,哪些内容是加分项?
  • 前端整理 —— vue
  • HTML快速入门
  • 哈希冲突
  • git添加子模块(submodule)
  • C++ 11 pair
  • 反向传播与随机梯度下降