查询当天的数据,仅查询最近的条目

时间:2013-12-04 16:55:57

标签: sql informix

我是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略有不同。我该如何提取这类信息?我尝试使用“今天”修饰符,但它不像我想象的那样工作。

2 个答案:

答案 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)