在sql中使用min函数有个问题:
我有个问题,名单 pids
, pnames
,以及供应零件的所有供应商中该零件的最低成本,按最低成本的降序排列。提示:使用GROUPBY子句。
我有table:
供应商(sid:int,sname:varchar(30),地址:varchar(50))
零件(pid:int,pname:varchar(30),颜色:varchar(10))
目录(sid:int,pid:int,cost:double)
我当前的代码如下所示:
select distinct p.pid, p.pname, min(c.cost) from Parts p
left join catalog c on p.pid=c.pid
group by c.cost desc;
我的结果应该是每个部分只打印一次,但在这种情况下,每个部分打印了很多次,花费了很多不同的成本。我不确定是否使用了min函数错误,但是如何创建这个sql查询,以便在所有供应商中获得零件的最低成本?我使用的min函数是错误的还是我的查询的其余部分有问题。
1条答案
按热度按时间gfttwv5a1#
试试这个:您需要使用pid和pname进行分组,因为cost是聚合列,所以groupbycluase中不需要它