gpt4 book ai didi

mysql - 如何在给定附加 ID 的情况下按最近日期排序

转载 作者:行者123 更新时间:2023-11-29 15:17:04 32 4
gpt4 key购买 nike

我在 SQL Workbench (MySQL Workbench) 中有一个表,如下所示:

Customer_id || Rep_id || Date_of_service
111 || 654 || 1/1/2017
111 || 673 || 10/20/2018
112 || 655 || 1/1/2017
112 || 655 || 4/1/2018
112 || 654 || 5/10/2018

我想要下面的唯一 customer_id 列表,其中包含最频繁的rep_id,如果是平局,则为最近的rep_id。示例:

Customer_id || Rep_id || Date_of_service
111 || 673 || 10/20/2018
112 || 655 || 4/1/2018

我尝试了以下代码:

create table most_recent_rep as
select customer_id, rep_id, max(date_of_service) as most_recent_date from my_table
group by customer_id, rep_id;

但这并没有给我一个唯一客户 ID 的列表。我也尝试过

create table most_recent_rep as
select customer_id, rep_id, date_of_service from
(select customer_id, max(date_of_service) as most_recent_date from my_table) as b
on b.customer_id = a.customer_id and b.most_recent_date = a.date_of_service;

但这产生的结果比我想象的要少。

最佳答案

一种方法使用相关子查询:

select t.*
from my_table t
where t.date_of_service = (select max(t2.date_of_service)
from my_table t2
where t2.customer_id = t.customer_id
);

为了提高性能,您需要在 (customer_id, date_of_service) 上建立索引。

关于mysql - 如何在给定附加 ID 的情况下按最近日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59631928/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com