我是Informix的新手,我正试图找出一些语法。我有一个存储代理状态信息的表。我只想从表中提取两件事;
1 - 当天的行
2 - 仅限每个代理商的最新条目
所以,查询
select limit 5 agentid, eventdatetime from agentstatedetail order by eventdatetime desc
将屈服;
+------------+------------------------+
| agentid | eventdatetime |
+------------+------------------------+
| 1552 | 2013-12-04 16:48:20.122|
| 1482 | 2013-12-04 16:48:18.897|
| 1439 | 2013-12-04 16:48:17.754|
| 1188 | 2013-12-04 16:48:15.972|
| 788 | 2013-12-04 16:48:15.190|
+------------+------------------------+
Informix语法似乎与mysql略有不同。我该如何提取这类信息?我尝试使用“今天”修饰符,但它不像我想象的那样工作。
答案 0 :(得分:2)
您可以获得今天有一行的每个agentid的max eventdatetime:
SELECT agentid,max(eventdatetime)
FROM agentstatedetail
WHERE date(eventdatetime) = TODAY
GROUP BY agentid;
P.S。要在informix中获得LIMIT 5
的相同效果,请执行SELECT FIRST 5
...
答案 1 :(得分:1)
希望这项工作:
select A.agentid, A.eventdatetime
from agentstatedetail A
where
date(A.eventdatetime) = TODAY
and A.eventdatetime = ( select MAX(B.eventdatetime) from agentstatedetail B where A.agentid = B.agentid)