我有一份产品和供应商清单。我需要确保数量大于零。如果是这样,我需要找到价格最低的产品,并列出供应商、产品(SKU)、数量和价格。
我的测试数据架构是:
create table products(merchant varchar(100), name varchar(150), quantity int, totalprice int);
insert into products values
('Supplier A', 'APC-SMT1000I', 10, 150),
('Supplier B', 'APC-SMT1000I', 15, 250),
('Supplier C', 'APC-SMT1000I', 15, 350),
('Supplier D', 'DEF-SMT1000I', 10, 500),
('Supplier E', 'DEF-SMT1000I', 35, 350),
('Supplier G', 'GHI-SMT1000I', 75, 70)
从逻辑上讲,我希望结果为:
SUPPLIER SKU QTY PRICE
Supplier A APC-SMT1000I 10 150
Supplier D DEF-SMT1000I 35 350
Supplier G GHI-SMT1000I 75 70
我的 SQL 语句如下:
SELECT merchant AS Supplier, name AS sku,quantity AS Qty,
min(totalprice) AS Price FROM products where quantity > 0 group by name;
我的结果是:
SUPPLIER SKU QTY PRICE
Supplier A APC-SMT1000I 10 150
Supplier D DEF-SMT1000I 10 350
Supplier G GHI-SMT1000I 75 70
显然,编码是找到最低价格并显示它,但不是用正确的数据。
我的问题?如何对数据进行分组,找到record
价格最低的数据并确保程序仅使用该记录中的数据?