我得到这个错误:
错误:“programmer.pname”列必须出现在GROUP BY子句中或用于聚合函数中
第1行:从程序员中选择pname,min(age(doj));
我有一个名为programmer的表和带有日期的列dobdoj
这里doj是加入的日期。
我想在所有的程序员中找到最没有经验的程序员。
这是我的尝试:

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

我得到了上面的错误。
这是什么programmer.pname以及上面的正确查询是什么?

最佳答案

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是什么,正确的查询是什么
上面?
programmer.pname=表名.columnname

10-08 10:55