gpt4 book ai didi

php - 如何按时间范围从观看开始时间和观看持续时间获取观众?

转载 作者:行者123 更新时间:2023-11-30 22:05:40 25 4
gpt4 key购买 nike

我做统计有点问题

人们可以在我的网站上观看视频。我将一些数据存储在 mysql 表 videos_has_views 中

IdUser = the watcher ID
ddv = date of view = the start time of the view
duration = the duration of the view

我想得到的是按时间范围有多少观众活跃的数组。

例如:

John start viewing at 2017-01-01 00:00:00 and watch video for 1800 seconds (30mn)

Hodor start viewing at 2017-01-01 00:00:00 and watch video for 1200 seconds (20mn)

Rob start viewing at 2017-01-01 00:10:00 and watch video for 1800 seconds (30mn)

我试着得到一个像这样的数组

From 0 to 10min : 2 viewers (john + hodor)    
From 10 to 20min : 3 viewers
From 20 to 30 : 2 viewers (john + Rob)
From 30 to 40 : 1 viewer (rob)

但我不知道如何用 mysql 或 php 中的循环来解决这个问题?如果有人对我有想法,我将非常感激

最佳答案

也许是这样的?

SELECT
CASE
WHEN duration BETWEEN 0 AND 600 THEN '0to10'
WHEN duration BETWEEN 601 AND 1200 THEN '10to20'
WHEN duration BETWEEN 1201 AND 1800 THEN '20to30'
ELSE 'moreThan30'
END as duration_range,
count(IdUser) as cnt
FROM videos_has_views
GROUP BY duration_range
ORDER BY duration_range ASC;

你可以根据需要创建任意数量的范围......它有效(至少在 MySQL 5.7 中)如果您想在另一列中包含名称,那么(因为我们使用的是 GROUP BY)您可以使用来自名称/用户 ID 或其他内容的 GROUP CONCAT :)

关于php - 如何按时间范围从观看开始时间和观看持续时间获取观众?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41850581/

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