Php SQL计算不同类型评级的平均值
我有一个线程,不同的用户用3种不同的类型对一部电影进行评级 假设我有线程22,不同的类型=Php SQL计算不同类型评级的平均值,php,mysql,sql,Php,Mysql,Sql,我有一个线程,不同的用户用3种不同的类型对一部电影进行评级 假设我有线程22,不同的类型=movie.quality、movie.story和movie.imdb 因此,评级表的结构如下所示: | ID | thread_id | user_id | type | value | 12 | 22 | 2 | 'movie.imdb' | 8.5 | 23 | 22 | 4 | 'movie.imdb' |
movie.quality、movie.story和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
作为我查询的结果,我想得到平均的proid和type,比如
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`
按分组:
select `type`, avg(`value`)
from ratings
where `thread_id` = 22
group by `type`
您可以按线程id、类型进行分组,并可以获取值的平均值
select thread_id,type, avg (value)
from rating
group by thread_id,type
现在,从这个查询的输出中,您可以根据代码中的
线程id
选择生成/形成数组。。或者更准确地说是数组或数组 您可以按线程id、类型进行分组,并可以获取值的平均值
select thread_id,type, avg (value)
from rating
group by thread_id,type
现在,从这个查询的输出中,您可以根据代码中的
线程id
选择生成/形成数组。。或者更准确地说是数组或数组 根据您的答案,从thread=25的评级中选择类型、平均值(“值”),按“类型”分组;不起作用:(=将平均值显示为0,并仅显示一种类型,而不是所有类型。这是`type`
,而不是'type'
-即,使用反勾号,而不是单引号。这会产生很大的差异。根据您的答案,选择类型,将平均值(“值”)与按“类型”分组的线程=25的评级进行比较;不起作用:(=将平均值显示为0,并且仅显示一种类型,而不是所有类型。这是`type`
,而不是'type'
-即,使用反勾号,而不是单引号。这会产生很大的差异。从评级中选择thread,type,AVG(VALUE),COUNT(*),其中thread=25,按线程分组,type;工作方式类似charme,谢谢。选择thread,type,AVG(VALUE),COUNT(*)根据thread=25的评级,按线程分组,键入;就像charme一样工作,谢谢。