【问题标题】:Get the most popular product in the same category获取同类产品中最受欢迎的产品
【发布时间】:2021-07-02 04:48:50
【问题描述】:

我的 Postgres 数据库中有 2 个表。

第一个表“产品”:https://imgur.com/a/Ru0IcuY

CREATE TABLE if not exists PRODUCTS (product_id varchar PRIMARY KEY, product_name varchar, price int, gender varchar,
category varchar, sub_category varchar, sub_sub_category varchar);

还有我的第二张桌子“pop_products”:https://imgur.com/a/6U3zBro 这包含产品 ID 和已售出的次数。 注意:“pop_products”中的“product_id”不是外键

CREATE TABLE if not exists POP_PRODUCTS (product_id varchar PRIMARY KEY, freq int);

我的目标是找到同类产品中最受欢迎的产品。

到目前为止我的代码:

SELECT product_id FROM products 
HERE category LIKE '""" + category[0] + """'
AND product_id NOT LIKE CAST(""" + productid + """ AS varchar)

在过去的 30 分钟里,我一直坐在这里摸不着头脑,试图找出解决方案,但直到现在才解决。

【问题讨论】:

    标签: python sql postgresql psycopg2


    【解决方案1】:

    嗯。 . .将表格连接在一起后,您可以使用distinct on

    select distinct on (p.category) p.*, pp.freq
    from pop_products pp join
         products p
         using (product_id)
    order by p.category, pp.freq desc;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      相关资源
      最近更新 更多