gpt4 book ai didi

php - 如何对相同的行求和并找到 mySQL 中高于平均水平的行?

转载 作者:行者123 更新时间:2023-11-30 23:44:35 24 4
gpt4 key购买 nike

这是我的数据库表的示例:

visitor_id ---- url ---- duration
1 ------------ home ------- 5
1 ------------ about ------ 8
1 ------------ about ------ 3
1 ------------ contact ---- 2
1 ------------ home ------- 3
1 ------------ services --- 2

我想要实现的是显示超过所有 url 平均值的 url。但首先我需要按 url 对持续时间组求和。

比如所有页面的平均值=5+8+3+2+3+2=23/6=3.8

因此将显示的页面是首页(8 秒)和大约(11 秒)。

我怎样才能做到这一点?

这是我目前的情况

select sum(duration), url from pages where visitor_id='1' group by url

最佳答案

您可以join 平均或使用having 子句。我会这样写:

select p.visitor_id, p.url, avg(p.duration)
from pages p
where visitor_id = 1
group by p.visitor_id, p.url
having avg(p.duration) > (select avg(p2.duration)
from pages p2
where p2.visitor_id = p.visitor_id
);

注意事项:

  • 我猜 visitor_id 是数字,所以常量是数字而不是字符串。
  • having子句中的子查询与外层查询相关,因此访问者id只输入一次。
  • 查询按访问者 ID 和 URL 聚合,因此它适用于任意数量(或所有)的访问者。

关于php - 如何对相同的行求和并找到 mySQL 中高于平均水平的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371012/

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