如果我的查询是
SELECT * FROM EventLog WHERE Role LIKE %Admin%
该查询产生了3个名称列值为“ John”的记录和4个名称列值为“ Bob”的记录,
我希望它只向我显示一个鲍勃和一个约翰结果,并且让每个名称包括的唯一结果是在“日期”列(该名称)中具有最新日期的结果。
基本上,删除重复的名称结果,只显示该名称的最新日期。
答案 0 :(得分:0)
一种解决方案是使用相关子查询来获取每个名称的最新记录-这是一种类似的解决方案,用于从产品表中获取每个供应商的最昂贵产品:
SELECT P1.* FROM [Products] AS P1
INNER JOIN (
SELECT SupplierID, MAX(Price) AS MaxPrice FROM [Products] GROUP BY SupplierID
) AS P2 ON (P1.SupplierID = P2.SupplierID AND P1.Price = P2.MaxPrice)
我在https://www.w3schools.com/sql/trysql.asp?filename=trysql_op_in对此进行了测试,但是我没有本地数据库可以为您的EventLog表设置确切的示例,但是原理是相同的。您将需要获取MAX(日期)和GROUP BY名称。