最小值使用 SQL 语言



我在SQL中使用MIN函数时有一个问题:

我有一个问题,列出pidspnames,以及该零件在提供零件的所有供应商中的最低成本,按最低成本的降序排列。提示:使用分组依据子句。

我有表格:

供应商(sid: int, sname: VARCHAR(30(, 地址: VARCHAR(50((

零件(pid: int, pname: VARCHAR(30(, 颜色: VARCHAR(10((

目录(sid: int, pid: int, 成本: 双倍(

我当前的代码如下所示:

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 函数,或者我的查询的其余部分是否有问题。

试试这个: 您需要使用 pid 和 pname 进行分组,因为成本是您的聚合列,因此不需要按 cluase 分组

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

最新更新