python - 获取同类产品中最受欢迎的产品
问题描述
我的 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 分钟里,我一直坐在这里挠头,试图找出解决方案,但直到现在才解决。
解决方案
嗯。. . 您可以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;