# Write your MySQL query statement below
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
的数量。
按 任意顺序 返回结果表。
查询结果格式如下示例所示。
示例 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]。
原站题解
pythondata 解法, 执行用时: 328 ms, 内存消耗: 60.9 MB, 提交时间: 2023-08-09 17:33:13
import pandas as pd def daily_leads_and_partners(daily_sales: pd.DataFrame) -> pd.DataFrame: result = daily_sales.groupby(['date_id', 'make_name']).agg({'lead_id': 'nunique', 'partner_id': 'nunique'}).reset_index() result.columns = ['date_id', 'make_name', 'unique_leads', 'unique_partners'] return result
mysql 解法, 执行用时: 620 ms, 内存消耗: 0 B, 提交时间: 2022-06-06 10:21:49
# Write your MySQL query statement below SELECT date_id, make_name, COUNT(DISTINCT lead_id) as unique_leads, COUNT(DISTINCT partner_id) as unique_partners FROM DailySales GROUP BY date_id, make_name;
mysql 解法, 执行用时: 555 ms, 内存消耗: 0 B, 提交时间: 2022-05-26 17:43:55
# Write your MySQL query statement below SELECT date_id, make_name, COUNT(DISTINCT lead_id) as unique_leads, COUNT(DISTINCT partner_id) as unique_partners FROM DailySales GROUP BY date_id, make_name;