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

SQL实现查询指定员工最近5个不重复已检查Asset_ID的方法

解法

你需要先对Asset_ID分组,取每个资产的最新检查时间作为排序依据,再去重取前5条即可,不同数据库写法略有差异:

通用写法(适用于MySQL、PostgreSQL等)

SELECT Asset_ID
FROM EmployeeLog
WHERE Employee_ID = @Emp_ID 
  AND Asset_ID != '00000000-0000-0000-0000-000000000000'
GROUP BY Asset_ID
ORDER BY MAX(DateChecked) DESC
LIMIT 5;

SQL Server 写法

SELECT TOP 5 Asset_ID
FROM EmployeeLog
WHERE Employee_ID = @Emp_ID 
  AND Asset_ID != '00000000-0000-0000-0000-000000000000'
GROUP BY Asset_ID
ORDER BY MAX(DateChecked) DESC

Oracle 写法

SELECT Asset_ID
FROM EmployeeLog
WHERE Employee_ID = @Emp_ID 
  AND Asset_ID != '00000000-0000-0000-0000-000000000000'
GROUP BY Asset_ID
ORDER BY MAX(DateChecked) DESC
FETCH FIRST 5 ROWS ONLY;

注意事项

  • 你原有SQL中WHERE条件写的EmployeeID和表定义的列名Employee_ID不一致,执行前请修正为实际的列名
  • 分组后用MAX(DateChecked)排序是为了保证按每个资产最后一次被检查的时间倒序,符合「最近检查过」的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:42:00