min使用sql语言

n6lpvg4x  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(294)

在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函数是错误的还是我的查询的其余部分有问题。

gfttwv5a

gfttwv5a1#

试试这个:您需要使用pid和pname进行分组,因为cost是聚合列,所以groupbycluase中不需要它

select p.pid, p.pname, min(c.cost) from Parts p 
    left join catalog c on p.pid=c.pid 
    group by p.pid, p.pname

相关问题