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

如何编写SQL查询根据各水果对应最早日期时间筛选所属分类

SQL按水果最早时间筛选对应分类的实现方案

方案1:窗口函数实现(推荐,适配MySQL8+、PostgreSQL、SQL Server等主流新版数据库)

使用ROW_NUMBER()窗口函数对同种类水果按时间升序排序,取排序第一的记录即可:

WITH ranked_food AS (
    SELECT 
        Food,
        category,
        Datetime,
        ROW_NUMBER() OVER (PARTITION BY Food ORDER BY Datetime ASC) AS rn
    FROM 你的表名
)
SELECT Food, category, Datetime
FROM ranked_food
WHERE rn = 1;

针对你提供的样例数据,执行后返回结果如下:

FoodcategoryDatetime
Applemorning2021-10-06 00:00:00
DatesBrunch2021-10-06 10:00:00

方案2:子查询关联实现(适配不支持窗口函数的旧版数据库,如MySQL5.x)

先通过分组查询拿到每种水果的最早时间,再关联原表匹配对应分类:

SELECT t.Food, t.category, t.Datetime
FROM 你的表名 t
INNER JOIN (
    SELECT Food, MIN(Datetime) AS min_datetime
    FROM 你的表名
    GROUP BY Food
) t_min ON t.Food = t_min.Food AND t.Datetime = t_min.min_datetime;

注意:如果同一种水果存在多条完全相同的最早时间记录,该方案会返回所有匹配的记录,如有去重需求可额外添加DISTINCT关键字或按业务规则调整筛选逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:30:01