我有一个帖子,不同的用户评价了3种不同类型的电影。
说我有线程22,不同的类型= movie.quality, movie.story and movie.imdb
所以评级表的结构如下所示:
| ID | thread_id | user_id | type | value
| 12 | 22 | 2 | 'movie.imdb' | 8.5
| 23 | 22 | 4 | 'movie.imdb' | 7.5
| 42 | 22 | 5 | 'movie.story' | 8.5
| 56 | 22 | 6 | 'movie.quality' | 8.5
| 76 | 22 | 6 | 'movie.imdb' | 7.53
由于我的查询,我想获得平均专业人员和类型,如
array(thread_id=22 => array(
type=>movie.imdb => average=>8.2),
type=>movie.story => average=>8.8),
type=>movie.quality => average=>8.1))
我如何构建此查询?
答案 0 :(得分:2)
通过分组:
select `type`, avg(`value`)
from ratings
where `thread_id` = 22
group by `type`
答案 1 :(得分:1)
你可以按thread_id进行分组,输入并且可以获取价值AVG
select thread_id,type, avg (value)
from rating
group by thread_id,type
现在从此查询的输出中,您可以根据代码中的thread_id
进行选择以制作/形成数组..或者更准确地说是数组或数组..