gpt4 book ai didi

mysql - GROUP BY 也选择非常量列

转载 作者:行者123 更新时间:2023-11-29 03:57:24 24 4
gpt4 key购买 nike

我的数据库中有 2 个表:

log_visitors:
--------------------
id | host_id


log_access:
--------------------
visitor | document | timestamp

log_access.visitor 链接到 log_visitors.id

目前,我正在使用这个查询:

SELECT
log_visitors.host_id
, MIM(log_access.timestamp) AS min_timestamp
FROM
log_access
INNER JOIN log_visitors
ON (log_access.visitor = log_visitors.id)
GROUP BY log_visitors.host_id;

为数据库中的每个 host_id 获取 MIN(timestamp)

这是我的问题:

我还需要获取具有该时间戳的访问权限的document...我不能简单地将log_access.document 添加到SELECT 列表中,因为它不是常量并且我不是按文档分组...有什么想法吗?

最佳答案

您没有指定您的 DBMS,但这是 ANSI SQL(适用于大多数现代 DBMS)

select *
from (
SELECT log_visitors.host_id,
log_visitors.document,
log_access.timestamp
min(log_access.timestamp) OVER (partition by log_visitors.host_id) AS min_timestamp
FROM log_access
JOIN log_visitors ON (log_access.visitor = log_visitors.id)
) t
where t.timestamp = t.min_timestamp
ORDER BY host_id

关于mysql - GROUP BY 也选择非常量列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13199601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com