如何获取表中每个不同主键出现的有序行集的第一个?

发布于 2024-10-06 03:57:35 字数 521 浏览 3 评论 0原文

我想在单个查询中从表中获取一组特定的结果,但我不知道如何做到这一点。

我有一个表记录每个代理状态更改(在线、离线、离开等)以及发生的时间。

我想获取每个代理 ID 的最后状态更改,即考虑到代理 A 和 B,我的原始表包含:

ID |状态 | 时间

日期 在线 | 2010年11月29日

|离线 | 2010 年 11 月 30 日

B |离开 | 2010 年 11 月 28 日

B |在线 | 2010 年 11 月 30 日

我想生成如下输出:

ID |状态 | 时间

日期 离线 | 2010 年 11 月 30 日

B |在线 | 2010 年 11 月 30 日

我意识到这可能是一个非常基本的选择查询,但我无法确定我的具体情况。如果它可以兼容 INFORMIX 的话,也很疯狂:D

I want to obtain a specific set of results from a table in a single query and I'm not being able to find how to do it.

I've a got a table recording every agent state change (online, offline, away, etc) and the time when it happened.

I want to obtain for each agent id the last state change, i.e. considering agents A and B, I'd have the original table containing:

ID | STATE | DATETIME

A | Online | 29-11-2010

A | Offline | 30-11-2010

B | Away | 28-11-2010

B | Online | 30-11-2010

And I would want to generate an output like so:

ID | STATE | DATETIME

A | Offline | 30-11-2010

B | Online | 30-11-2010

I realize this might be a really basic select query, but I can't put my finger on what my be. Also mad props if it could be INFORMIX compatible :D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那些过往 2024-10-13 03:57:35

怎么样:

SELECT datetime, id, state FROM table t1 
 WHERE t1.datetime = (SELECT MAX(t2.datetime) FROM table t2 WHERE t2.id=t1.id)

How about:

SELECT datetime, id, state FROM table t1 
 WHERE t1.datetime = (SELECT MAX(t2.datetime) FROM table t2 WHERE t2.id=t1.id)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文