我有一个表记录用户登录的时间。 我想找到去年登录的所有用户。
所以,我简化了
| Client_ID | DateLoggedIn |
| 1 | 05/02/10 |
| 2 | 14/05/11 |
| 1 | 26/05/11 |
| 3 | 18/04/10 |
| 2 | 21/12/11 |
我正在尝试使用最近的日期返回ClientID 例如:
| Client_ID | DateLoggedIn |
| 1 | 26/05/11 |
| 2 | 21/12/11 |
| 3 | 18/04/10 |
我尝试过使用Group By并尝试使用UNION,但我认为我做错了...
感谢所有的帮助!
谢谢大家:)
答案 0 :(得分:1)
取决于您使用的RDBMS:
Select top 1 client_ID
From table
order by DateLoggedIn desc
或:
SELECT client
FROM ( SELECT client_ID,
RANK() OVER (ORDER BY DateLoggedIn DESC) rank
FROM table )
WHERE rank = 1
答案 1 :(得分:1)
这是一个聚合函数的简单组合,并且必须限制结果
如果X是您想要提交的日期
select Client_ID, max(DateLoggedIn)
from table
group by Client_ID
having max(DateLoggedIn) > X
设置X我认为取决于您正在使用的RDBMS
答案 2 :(得分:0)
与其他马克相似:
select Client_ID, max(DateLoggedIn)
from table
where DateLoggedIn > X /* X = one year ago - derivation will be DB-dependant */
group by Client_ID
order by max(DateLoggedIn) desc
答案 3 :(得分:-1)
SELECT Client_ID, DateLoggedIn from TableName
GROUP BY Client_ID
Order By DateLoggedIn DESC