gpt4 book ai didi

mysql - 如何从下面的 MySQL 表中获取平均 'rate'?

转载 作者:行者123 更新时间:2023-11-29 01:53:50 25 4
gpt4 key购买 nike

我有一个具有这种结构的 mysql 表:

CREATE TABLE `item_rate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item` int(11) NOT NULL,
`ip` int(32) NOT NULL,
`rate` int(1) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `item` (`item`),
CONSTRAINT `item_rate_ibfk_1` FOREIGN KEY (`item`) REFERENCES `items` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

我需要从这个表中得到这个计算的信息:

这里 'rate' 可能是 1,2,3,4 或 5所以我需要选择每个“项目”和这个“项目”计算

if rate = 5
5 * COUNT(id)
if rate = 4
4 * COUNT(id)

等等……

例子:

关于项目 1 我有

rate 5 count 100
rate 4 count 311
rate 3 count 188
rate 2 count 83
rate 1 count 10

select必须这样计算

(5 * 100 + 4 * 311 + 3 * 188 + 2 * 83 + 1 * 10) / 692(sum of counts) = 3.58

然后四舍五入这个3.58并像这样返回信息

item count
1 3
2 4
3 5
4 3
5 5

如何使用 1 个查询执行此操作?

附言我正在使用 mysql 数据库

最佳答案

您似乎只想要某项的平均评分。这最容易写成:

select item, avg(rate)
from item_rate
group by item;

如果你想保留两位小数,转换为 decimal 或使用 format():

select item, cast(avg(rate) as decimal(8, 2)) as avg_rate
from item_rate
group by item;

关于mysql - 如何从下面的 MySQL 表中获取平均 'rate'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34354353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com