获取同类产品中最受欢迎的产品

Get the most popular product in the same category

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

第一个 table 'products': 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);

我的第二个 table '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 分钟里,我一直坐在这里挠头,试图找出解决方案,但直到现在还没有解决。

嗯。 . .您可以在将表连接在一起后使用 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;