必须出现在postgresql中的GROUP BY子句中

时间:2015-12-29 07:25:50

标签: sql postgresql group-by

我收到此错误:

  

错误:列" programmer.pname"必须出现在GROUP BY子句中或用于聚合函数
  第1行:从程序员中选择pname,min(age(doj));

我有一个名为programmer的表格,列dobdoj有日期。

此处doj是加入日期。

我想找到所有程序员中经验最少的程序员。

这是我的尝试:

SELECT pname, min(age(doj)) FROM programmer;

我收到了上述错误。

那是什么programmer.pname以及对上述内容的正确查询是什么?

1 个答案:

答案 0 :(得分:2)

GROUP BY语句与聚合函数结合使用,将结果集分组为一列或多列。

select pname, min(age(doj)) 
from programmer 
group by pname 

找到所有程序员经验最少的程序员

  select pname
        ,min(age(doj)) mindoj 
  from programmer 
  group by pname 
  order by mindoj limit 1

select pname,doj  
from programmer 
order by doj limit 1 

在这种情况下,您可能拥有多名经验最少的程序员(程序员具有相同的最低经验

select pname,doj  
from programmer 
where doj=(select min(doj) from programmer)
  

什么是programmer.pname以及什么是正确的查询   以上?

程序员 pname = tablename columnname