我正在设计一个人们发布短信的网站。用户可以对消息进行评分(1 到 5)。我将此评级记录到表格中以:
- 避免一个用户对同一个帖子进行多次评分
- 能够获得帖子的平均评分。
但我也很重要,票数也很重要。例如,10 票 3 票(30 票)的帖子比 2 票 5 票(10 票)的帖子更有价值。现在,当我显示包含 20 条此类消息的页面时,我也想显示他们的评分
这是我的评分表:
create table ratings(
[id] int primary key identity(1,1),
[msgid] int,
[uid] int,
[rating] tinyint
)
我想从消息表中获取 20 条消息,其中包含每条消息的评分总和以及每条消息的评分计数。
select
msg.id, msg.text,
sum(rate.rating),
count(rate.id)
from
messages as msg
inner join
ratings as rate on msg.id = rate.msgid
group by
msg.id
任何人都可以帮我提供SQL查询代码吗?