- 在SQL92以及更早的SQL标准中不允许查询除了GROUP BY之外的非聚合的列,例如如下查询即非法:
select o.custid,c.name max(o.payment)
from order as o ,customers as c
where o.custid=c.custid
group by o.custid
因为c.name没有在group中,因此解决方案是删除c.name或者将c.name添加到group by中。但是在后期的SQL99标准中便允许查询非聚合的列了
select o.custid,c.name max(o.payment)
from order as o ,customers as c
where o.custid=c.custid
group by o.custid
因为c.name没有在group中,因此解决方案是删除c.name或者将c.name添加到group by中。但是在后期的SQL99标准中便允许查询非聚合的列了