当前位置: 首页 > 知识库问答 >
问题:

SQL:仅返回每个客户最近的活动

曾苗宣
2023-03-14

我有两个带有链接数据的表。有针对单个客户(客户id)的活动更新。我想返回每个客户最近的活动;

联系客户id(自动增量)姓氏姓氏姓氏
电话工作

活动活动\u id(自动增量)数据\u项目\u id按日期输入\u创建注释

我可以返回整套活动;

从联系人的联系人加入活动中选择姓氏、名、创建日期、备注。客户id=活动。数据项标识;

...但是我只想要每个customer_name最近的活动。如果我使用唯一,它似乎返回每个customer_name的第一个活动,而不是最近的。我肯定它非常简单,但我还没有找到。想法?

共有3个答案

蓝鸿哲
2023-03-14

还有一个解决方案

 select temp.* from
 ( 
  SELECT c.last_name last, c.first_name first, a.date_created, a.notes 
  FROM contact c JOIN activity a ON c.customer_id=a.data_item_id
  order by a.date_created desc
 ) temp
 group by temp.last, temp.first;
李宁
2023-03-14

如果每个客户仍然有多个记录,那么建议将使用RANK()来考虑(由…分区)来选择最近的记录。

蓬思博
2023-03-14

您可以使用MAX(date\u created)从联接表中选择正确的行。否则MySQL将加入所有行,或者如果是groupby,则选择它找到的第一个匹配行。

因此,问题是:

SELECT MAX(date_created) AS date, last_name, first_name, notes
       FROM contact JOIN activity ON contact.customer_id=activity.data_item_id
       ORDER BY customer_id ASC
 类似资料:
  • 问题内容: 编辑:我正在使用MySQL,我发现了另一个具有相同问题的帖子,但是它在Postgres中。我需要MySQL。 获取SQL中另一列的每个值的最通用值 在广泛搜索本网站和其他网站之后,我提出了这个问题,但没有找到符合我预期目的的结果。 我有一个人表(recordid,personid,transactionid)和一个事务表(transactionid,rating)。我需要一条SQL语句

  • 问题内容: 我有一个带有时间戳字段的表。如何获得最近3个月的数据? 特别是,三月是我当前的月份,请说 03/2012 。我只需要返回3月,2月和1月的记录。 问题答案: 今天前3个月: 从第一个月开始:

  • 我正在尝试使用Altova XMLSpy和XQuery1.0为每个客户返回最近的订单。 在SQL中,查询如下所示: 它返回16行,但我无法获得类似于XQuery中的工作。 我尝试了多种不同的代码,我认为我得到的最接近的代码是: 对于XML从MS Access导出的糟糕的标记名表示歉意。 请救命!提前道谢。 编辑:在尝试JoeMFB的解决方案后,当我只需要最近的(或最大日期)时,我会收到每个客户的所

  • 我想查询表A中每个点(id)到表B中每个多边形(id)的距离。对于距离计算,我使用ST_距离。但是,ST_Distance(显然)返回到每个多边形的距离。但我只需要每个点的“最接近”结果。到目前为止,我尝试了下面的查询,它返回了正确的结果,但是(当然)只返回了一个点。 结果应该是这样的: 你有什么提示吗?非常感谢你。 更新1 运行上述查询(3h 24m)后,返回的结果为空。然而,应该有一个结果。括

  • 我有CSV中的交易数据,其中包含

  • 问题内容: 我有此数据: 代码(对于SQL Server 2005): 我想为每个名称获取具有最新DATE的ID。像这样: 实现此目的最优雅的方法是什么? 问题答案: 尽量避免使用保留字(和模糊的列名),例如…