我有一个应用程序的日志文件,其中显示两列,用户名和时间戳。我正在尝试运行 PostgreSQL 查询以仅显示每个用户最后一次登录的时间。
这是我到目前为止整理的查询:
SELECT DISTINCT username, MAX(timestamp) FROM log
GROUP BY username, timestamp;
不幸的是,这仍然给我多个用户名条目,每个条目都有不同的时间。关于如何只显示每个用户的最后时间戳的任何提示?
我对 SQL 还是个新手,所以如果有任何帮助,我们将不胜感激。谢谢。
最佳答案
问题是group by
:
SELECT username, MAX(timestamp)
FROM log
GROUP BY username;
但是,如果您想要log
记录中的所有信息,DISTINCT ON
是更好的选择:
SELECT DISTINCT ON (username) l.*
FROM log
ORDER BY username, timestamp DESC;
你对 SELECT DISTINCT
的使用让我怀疑这可能是你想要的。
关于sql - 如何从访问日志中选择 DISTINCT(username) 和 MAX(timestamp) - postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40514775/