SQL - 具有group_by的平均相关记录数

时间:2015-07-01 13:20:46

标签: mysql group-by relational-database average

我有一个记录表(让我们称之为电视节目)和air_date字段。

我有另一个与show_id字段相关的广告表。

我试图获得每个日期每个节目的平均广告数量(使用where子句指定节目)。

我目前有这个:

select ip2numeric('192.168.1.2');
$ 3232235778

这给我一个结果:

SELECT 
 `air_date`,
 (SELECT COUNT(*) FROM `commercial` WHERE `show_id` =  `show`.`id`) AS `num_commercials`,  
FROM `show` 
WHERE ...

当我做GROUP_BY时,​​它只给我一条记录,但我想要每个air_date的平均值。

2 个答案:

答案 0 :(得分:0)

我不清楚我对你想要的东西很清楚 - 但是这样做了吗

SELECT `air_date`, 
AVG((SELECT COUNT(*) FROM `commercial` WHERE `show_id` =  `show`.`id`)) AS  `num_commercials`,  
FROM `show` 
WHERE .....
GROUP BY `air_date`

(注意需要AVG功能的双括号)

答案 1 :(得分:0)

您可以使用子查询按air_date / show选择广告数量,然后使用外部查询选择每个air_date的平均广告数量。

这样的事情应该有效:

People.Johnson