当使用ORDER BY另一个字段时,如何在一个字段中使用DISTINCT?

时间:2014-08-29 17:03:02

标签: sql sql-server sql-server-ce sql-order-by distinct

我正在使用SQL Server Compact Edition 3.5 SP2。

我想使用此查询:

SELECT DISTINCT PortalURI
FROM LoginHistory
ORDER BY LastLoginDate DESC

但它告诉我,它需要选择LastLoginDate字段,如下所示:

SELECT DISTINCT PortalURI, LastLoginDate
FROM LoginHistory
ORDER BY LastLoginDate DESC

但它让我反复PortalURI

我如何保持PortalURI不同?

修改:我还使用了GROUP BYORDER BY MAX(LastLoginDate),但结果是这个例外:

  

ORDER BY列表中的表达式不能包含聚合函数。

4 个答案:

答案 0 :(得分:3)

请尝试:

SELECT PortalURI
FROM LoginHistory
GROUP BY PortalURI
ORDER BY MAX(LastLoginDate) DESC

编辑: SQL Server Compact Edition不支持ORDER BY子句上的聚合函数。所以,这是一个替代解决方案:

SELECT PortalURI, MAX(LastLoginDate)
FROM LoginHistory
GROUP BY PortalURI
ORDER BY 2 DESC

答案 1 :(得分:1)

试试这个:

SELECT PortalURI, MAX(LastLoginDate) LastLoginDate
FROM LoginHistory
GROUP BY PortalURI
ORDER BY LastLoginDate DESC

答案 2 :(得分:0)

    SELECT PortalURI, MAX(LastLoginDate)
    FROM LoginHistory
    GROUP BY PortalURI
    ORDER BY LastLoginDate DESC

答案 3 :(得分:-1)

SELECT PortalURI,max(LastLoginDate)
FROM LoginHistory
GROUP BY PortalURI
ORDER BY LastLoginDate DESC