SQL查询 - WHERE(MAX)AND(= VALUE)

Chr*_*lli 3 sql sql-server

我有一个大约1000行的表.该行包括ID,IDUSER,DESCRIPTION和DATE.
我需要获得具体的DESCRIPTIONMAX .DATEIDUSER

在示例中,我需要获得"ASD"描述

ID     IDUSER        DESCRIPTION     DATE
----------------------------------------------
1      1             ASD             4/16/2018   
2      1             QWE             4/10/2018   
3      2             ZXC             3/01/2018  
4      2             BNM             1/26/2018  
5      2             JKL             5/02/2018  
6      3             IOP             3/14/2018  
7      4             RTY             1/13/2018 

我正在尝试类似的东西

SELECT DESCRIPTION FROM TABLE WHERE IDUSER = 1 AND DATE = (SELECT MAX(DATE) FROM TABLE)
Run Code Online (Sandbox Code Playgroud)

它不起作用,也许有人可以帮我这个?

Gor*_*off 5

对于特定用户,请使用top (1):

SELECT TOP (1) DESCRIPTION
FROM TABLE
WHERE IDUSER = 1
ORDER BY DATE DESC;
Run Code Online (Sandbox Code Playgroud)

为了提高性能,您需要一个索引(IDUSER, DATE).

  • 这是有效的,因为我们已经把桌子缩小到特定的用户...好眼睛发现.如果我们想要查看多个用户的结果,事情会变得更复杂. (3认同)