表: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 的数量。
按 任意顺序 返回结果表。
查询结果格式如下示例所示。
示例 1:
输入:
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]。
按两列group by,然后count(distinct colname)计数即可:
# Write your MySQL query statement below
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;
博客围绕DailySales表展开,该表包含日期、产品名称、领导编号和合伙人编号等信息。要求编写SQL语句,针对每个date_id和make_name,统计不同的lead_id和partner_id数量,并按任意顺序返回结果表,最后提示按两列group by再计数。
565

被折叠的 条评论
为什么被折叠?



