0

私はこのようなテーブルを持っています

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、、、が同じで、durationnameが異なるエントリがありdateますtime。これらは、ある時期に何度も放映されたのと同じビデオです。

duration毎月グループ化された個別のビデオの合計を計算する必要があります。アイデアを教えてください。

4

1 に答える 1

0

したがって、1か月あたりの個別のビデオの長さの合計が必要です。

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

したがって、 1か月あたりの動画ごと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)

于 2012-10-23T15:17:56.027 に答える