gpt4 book ai didi

java - 根据产品功能排名

转载 作者:行者123 更新时间:2023-11-29 07:13:42 24 4
gpt4 key购买 nike

我在mysql中有下表数据库:

  1. 产品

    • 产品 ID
    • 产品名称
    • 产品类别id_fk
  2. 产品功能

    • feature_id
    • 产品id_fk
    • 功能名称

我需要根据产品的功能为产品添加排名功能,

排名将从 1 到 100 开始,例如根据产品的功能,

为每个功能赋予一个“权重”,并将产品的总体“分数”定义为其组件功能的总和,

权重是实现这一目标的一种方法,

最终将用于比较同一类别的产品,

您能否提出以下建议:

  • 我需要添加哪些新表格
  • 我需要向现有表格中添加哪些列
  • 如何计算与表格关联的排名

所有帮助将不胜感激

最佳答案

  1. 为每个特征赋予权重:

    ALTER TABLE product_features ADD COLUMN weight INT;
    UPDATE product_features SET weight = ? WHERE feature_id = ?; -- and repeat
  2. 选择产品(结合其功能然后分组),按总分排序:

    SELECT   p.*, SUM(f.weight) AS score
    FROM products p
    JOIN product_features f ON f.product_id_fk = p.product_id
    GROUP BY p.product_id
    ORDER BY score DESC
  3. 或者获取特定产品的排名:

    SELECT 1+COUNT(*) AS rank FROM (
    SELECT NULL
    FROM product_features
    GROUP BY product_id_fk
    HAVING SUM(weight) > (
    SELECT SUM(weight)
    FROM product_features
    WHERE product_id_fk = ? -- your product_id here
    )
    ) t

关于java - 根据产品功能排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38718462/

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