mysql除法运算保留小数的函数DECIMAL(P,D)

曾经终败给现在 2022-11-21 09:51 700阅读 0赞

业务场景

通过计算买家对店铺商品评价的评分来计算店铺的综合好评率。
商品评价分数1-5分

实现

完整实现sql

  1. SELECT
  2. store_id AS storeId,
  3. CONCAT( CONVERT ( ( SUM( score )/ COUNT( score ))* 20, DECIMAL ( 15, 2 )), "%" ) AS centage
  4. FROM
  5. e_goods_comment
  6. WHERE
  7. append_id IS NULL
  8. AND evaluation_user_id = 1
  9. GROUP BY
  10. store_id
  • 使用函数 SUM() 函数计算店铺相关所以商品的评分和

    SUM( score )

  • 使用 COUNT() 函数计算店铺商品评价数

    COUNT( score )

  • 使用DECIMAL (P,D)函数,转换两个数相除后的精度和保留的小数点后位数

P是表示有效数字数的精度。 P范围为1〜65。
D是表示小数点后的位数。 D的范围是0~30。MySQL要求D小于或等于(<=)P。

-使用函数 CONVERT () 来进行数据类型得到转换
前:

  1. SUM( score )/ COUNT( score ))* 20

20201031161414759.png_pic_center
后:

  1. CONVERT ( ( SUM( score )/ COUNT( score ))* 20, DECIMAL ( 15, 2 ))

20201031161553321.png_pic_center

  • 使用函数 CONCAT() 来进行百分号的拼接

    CONCAT( CONVERT ( ( SUM( score )/ COUNT( score ))* 20, DECIMAL ( 15, 2 )), “%” )

最后结果:
20201031161812505.png_pic_center

发表评论

表情:
评论列表 (有 0 条评论,700人围观)

还没有评论,来说两句吧...

相关阅读