gpt4 book ai didi

SQL - 连接两个单独的 sql 查询

转载 作者:行者123 更新时间:2023-12-04 23:33:15 25 4
gpt4 key购买 nike

我有一个表,用于存储 Web 应用程序上的页面点击量,存储

unique_row_id  http_session_id  page_name   page_hit_timestamp
----------------------------------------------------------------
0 123456789 index.html 2010-01-20 15:00:00
1 123456789 info.html 2010-01-20 15:00:05
2 123456789 faq.html 2010-01-20 15:00:15
3 987654321 index.html 2010-01-20 16:00:00
4 987654321 faq.html 2010-01-20 16:00:05
5 987654321 info.html 2010-01-20 16:00:15
6 111111111 index.html 2010-01-20 16:01:00
7 111111111 faq.html 2010-01-20 16:01:05
8 111111111 info.html 2010-01-20 16:01:15

我想运行一个 sql 查询,该查询将显示用户最终浏览的最常见页面。

所以我最初的想法是,在我的 (java) 应用程序中,我可以运行一个查询,该查询将从表中选择不同的 http_session_id 值,然后对于每个不同的 http_session_id,运行另一个查询以获取具有“最新”page_hit_timestamp 的页面,并对所有这些页面求和。
(对于上面的示例数据,info.html 的计数为 2,faq.html 的计数为 1。)

但是,我想知道的是:有没有办法将这两个查询组合成一个 sql 语句 - 或者我是否必须为此走存储过程路线?

我看过使用 join,但我不知道它是否适用于这种情况。

PS - 我知道我可以在我的应用程序中使用 Google Analytics 之类的工具来为我提供这些信息,但是 a) 这是一个移动网络应用程序,因此不适用于现成的分析工具,并且 b) 我只是好奇知道这是否可以在 SQL 中完成。

最佳答案

这应该做你想做的:

select 1.page_name, count(*) as ExitPageCount
from WebLog l
inner join (
select http_session_id, max(page_hit_timestamp)
from WebLog
group by session
) lm on l.http_session_id = lm.http_session_id and l.page_hit_timestamp = lm.page_hit_timestamp
group by 1.page_name

关于SQL - 连接两个单独的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2105079/

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