写点什么

数据库每日一题 --- 第 18 天:每天的领导和合伙人

作者:知心宝贝
  • 2022 年 6 月 20 日
  • 本文字数:1266 字

    阅读完需:约 4 分钟

数据库每日一题---第18天:每天的领导和合伙人

一、问题描述

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.聚合函数2.建议用时10~25min
复制代码

三、问题分析

题目简单说就是相同的 date_id 和 make_name代表一组数据,计算出这一行不重复的unique_leads 和unique_partners的数值。


这一题主要考察聚合函数的使用,分组的对象不是单一的数据,而是date_id | make_name共同分组,对分组之后的结果,每一行的领导和合伙人做唯一化计数处理,其中唯一化可以使用distinct处理,最后得出的结果就是题目要求的数据。

四、编码实现

select date_id,make_name,count(distinct lead_id)  as 'unique_leads',count(distinct partner_id) as 'unique_partners'from DailySalesgroup by date_id,make_name
复制代码

五、测试结果




发布于: 刚刚阅读数: 3
用户头像

知心宝贝

关注

公众号:穿越计算机的迷雾 2022.03.07 加入

生于尘埃 溺于人海 死于理想高台

评论

发布
暂无评论
数据库每日一题---第18天:每天的领导和合伙人_数据库_知心宝贝_InfoQ写作社区