You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:如何按EAN_code获取对应的Transaction_Date最大值

嘿,你这需求就是要给每个EAN码找出对应的最新销售日期对吧?我给你准备了两种最常用的实现方案,不管你用SQL还是Python Pandas都能搞定:

方法1:SQL实现

核心逻辑是按EAN_Code分组,然后对Transaction_Date列取最大值。需要注意的是,你的日期是dd/mm/yyyy的字符串格式,直接对字符串取最大值可能会出现逻辑错误(比如字符串排序会把09/04/2018排在14/04/2018前面),所以建议先把字符串转成日期类型再计算。

基础版(假设日期已存为日期类型)

SELECT 
    EAN_Code,
    MAX(Transaction_Date) AS Latest_Transaction_Date
FROM 
    your_table_name  -- 替换成你的表名
GROUP BY 
    EAN_Code;

日期格式转换版(针对字符串类型的日期)

如果你的Transaction_Date是字符串,以MySQL为例,用STR_TO_DATE转换格式:

SELECT 
    EAN_Code,
    MAX(STR_TO_DATE(Transaction_Date, '%d/%m/%Y')) AS Latest_Transaction_Date
FROM 
    your_table_name
GROUP BY 
    EAN_Code;

其他数据库类似,比如SQL Server用CONVERT(DATE, Transaction_Date, 103)(103对应dd/mm/yyyy格式)。

方法2:Python Pandas实现

用Pandas处理的话,先把日期字符串转成datetime类型,再通过groupby分组取最大值即可:

import pandas as pd

# 读取数据(这里假设是CSV文件,你也可以直接用已有的DataFrame)
df = pd.read_csv('your_data.csv')

# 将Transaction_Date转换为datetime类型,指定格式为dd/mm/yyyy
df['Transaction_Date'] = pd.to_datetime(df['Transaction_Date'], format='%d/%m/%Y')

# 按EAN_Code分组,取每个组的最大Transaction_Date,最后重置索引得到规整的结果
latest_sales_dates = df.groupby('EAN_Code')['Transaction_Date'].max().reset_index()

# 查看结果
print(latest_sales_dates)

执行后会得到每个EAN码对应一行,显示它的最新销售日期,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Sshitanshu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:30:45