广西工程建设质量管理协会网站,wordpress图片收费,软件设计专业就业前景,中国机床行业大家好#xff0c;我是空空star#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目#xff1a;1693. 每天的领导和合伙人二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.… 大家好我是空空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_idu2.date_id and u1.make_nameu2.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_idu2.date_id and u1.make_nameu2.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_idu2.date_id and u1.make_nameu2.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)