sha*_*bby 0 sql greatest-n-per-group
我有下表
fieldid STATUS CreatedWhen
122 Down 2012-05-16 14:26:56.263
122 Down 2012-05-16 14:26:56.250
122 Down 2012-05-16 14:26:56.233
122 Down 2012-05-16 14:26:56.217
122 Up 2012-05-16 14:26:56.200
54 Up 2011-10-07 10:19:33.873
Run Code Online (Sandbox Code Playgroud)
我想只选择那些最新状态为Up的字段,结果应该只是最后一行,因为fieldid:122的最新状态为'Down'.只有在状态有效时才能获得最大日期.
编辑:sql server 2008
Zan*_*ien 10
不确定您正在使用哪个DBMS,因为您没有指出,但这是一个与DBMS无关的解决方案,无论您使用的是哪个DBMS都应该可以使用:
SELECT
a.fieldid
FROM
(
SELECT fieldid, MAX(CreatedWhen) AS maxdate
FROM tbl
GROUP BY fieldid
) a
INNER JOIN
tbl b ON
a.fieldid = b.fieldid AND
b.CreatedWhen = a.maxdate AND
b.STATUS = 'Up'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6715 次 |
| 最近记录: |