我有一张录制节目视图的表格。每个程序可以有两种不同的类型(1 =视频,2 =音频)
我的表格记录了观点:
TABLE views
view_id
user_agent
created_at
type
program_id (which related to table programs)
我当前的MySQL电话:
SELECT COUNT(*) as views,
`mp`.`title`,
`mp`.`program_date` as date
FROM (`applications_media_views` as v)
JOIN `media_programs` as mp ON `v`.`program_id` = `mp`.`program_id`
GROUP BY `v`.`program_id`
ORDER BY `views` desc
麻烦的是,这并没有将类型分开。我需要通过program_id报告视图,但我需要将类型分开。
我错过了什么?
答案 0 :(得分:2)
您可以按不止一件事进行分组。试试这个:
GROUP BY `v`.`program_id`, `v`.`type`
答案 1 :(得分:1)
您是否需要“按program_id分组,输入”并在查询中选择类型?
如果没有,您能否显示一个符合您需要的示例查询输出?
答案 2 :(得分:1)
您需要在SELECT和GROUP BY子句中添加v.type:
SELECT COUNT(*) as views,
`mp`.`title`,
`mp`.`program_date` as date,
v.type
FROM (`applications_media_views` as v)
JOIN `media_programs` as mp ON `v`.`program_id` = `mp`.`program_id`
GROUP BY `v`.`program_id`, v.type
ORDER BY `views` desc
您将获得每个程序/类型组合的输出行。
答案 3 :(得分:0)
您应该在group by子句中添加v.type,并且还应该在select子句中添加v.type,以便查看哪个集合来自哪个程序类型。
答案 4 :(得分:0)
上面的答案都很好。但在我看来,你应该在你的group by子句中放入“title”和“program_date”,因为它们不存在于聚合函数中。