我有一张这样的表
CREATE TABLE `air_video` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`date` DATE NOT NULL,
`time` TIME NOT NULL,
`asset_id` INT(10) UNSIGNED NOT NULL,
`duration` TIME NOT NULL,
`name` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id`),
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
有些条目具有相同的asset_id
,duration
和name
,但date
和time
不同。这些是在一段时间内多次播出的相同视频。
我需要计算按月分组的不同视频的总duration
。
请提出一些想法?
答案 0 :(得分:0)
因此,您需要每月每个不同视频的持续时间总和:
select
year,
month,
sec_to_time(sum(time_to_sec(duration))) as totaltime
from
(select distinct
av.asset_id,
av.duration,
year(av.date) as year,
month(av.date) as month
from
air_video av)
group by
year,
month
因此,每个视频每月需要 sum
个持续时间grouped
...
RobertHarvey在评论(谢谢)中建议智能地使用分组。
time_to_sec
用于将时间值转换为秒,因此可以求和。
select
av.asset_id,
year(av.date) as year,
month(av.date) as month,
sec_to_time(sum(time_to_sec(av.duration))) as totaltime
from
air_video av
group by
av.asset_id,
year(av.date),
month(av.date)
击> <击> 撞击>