我有一个线程,不同的用户将一部电影分为三种不同的类型。
假设我有线程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
作为查询的结果,我想得到平均的pro-id和类型,类似
array(thread_id=22 => array(
type=>movie.imdb => average=>8.2),
type=>movie.story => average=>8.8),
type=>movie.quality => average=>8.1))
如何构建此查询?
按分组:
select `type`, avg(`value`)
from ratings
where `thread_id` = 22
group by `type`
您可以通过thread_id进行分组,键入并可以获取值为的AVG
select thread_id,type, avg (value)
from rating
group by thread_id,type
现在,从这个查询的输出中,您可以根据代码中的thread_id
进行选择,以生成/形成数组。。或者更精确地说是数组或数组。。