MySQL仿淘宝页面评论评分统计SQL

假设淘宝有一张商品评论表,存储在MySQL中.表设计如下:

IDproductlist_comment主键,

UserID为用户的ID,

ProductID为商品ID

Content为评论的内容,

CreateTime为评论的时间.

Star为商品评分分数,取值为1-5;

ProductID和UserID已经分别建立索引. 

SELECT ID, ProductID, UserID, Star, Content, Createtime 
FROM mysqldb.productlist_comment limit 10

 查询得到如下评论数据:


要求在商品页面需要计算出,

好评数(Star>3),差评数(Star<3),中评数(Star=3),

以及评论总数,平均Star分数(如4.7), 好评百分比.

正对上面需求, 整理SQL如下: 

select SUM(s.Star45) as Star45Num,
       SUM(s.Star3)  as Star3Num,
       SUM(s.Star12) as Star12Num,
       SUM(s.Record) as TotalNum,
       AVG(s.starValue) AS AverageStar,
       SUM(s.Star45)/SUM(s.Record) AS Star45Percent
from(
select case when pc.star>3 then 1 else 0 end as Star45,
       case when pc.star=3 then 1 else 0 end as Star3,
       case when pc.star<3 then 1 else 0 end as Star12,
       pc.star as starValue,
       1 AS Record
from mysqldb.ProductList_comment pc
where pc.ProductID=15792
) as s

 得出的数据展现如下: 



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值