ORACLE,为什么子查询中SELECT数可以大于GROUP BY

举例如下:
select t.purchasecode,
t.a
from (
SELECT coun.purchasecode,
coun.scandate,
count(*) a
FROM APP_COUNTERFOIL COUN
group by COUN.PURCHASECODE
)
这种情况是对的,但是
coun.scandate,
count(*) a
FROM APP_COUNTERFOIL COUN
group by COUN.PURCHASECODE
这种情况是错的,为什么?
修正一下,第二个SQL应该是
coun.scandate,
count(*) a
FROM APP_COUNTERFOIL COUN
group by COUN.PURCHASECODE

第1个回答  2013-11-04
你举的这两个例子都是错的,group by后的分组列必需小于等于select 后的分组列追问

实际上是可以运行的,第二个写错了,应该是
select coun.purchasecode,
count(*) a
FROM APP_COUNTERFOIL COUN
group by COUN.PURCHASECODE

第2个回答  2013-11-04
coun.scandate,
count(*) a
FROM APP_COUNTERFOIL COUN
group by COUN.PURCHASECODE

这段代码中你前面查询的没有要分组的字段追问

第二个错了,是
select coun.purchasecode,
count(*) a
FROM APP_COUNTERFOIL COUN
group by COUN.PURCHASECODE

本回答被网友采纳
第3个回答  2013-11-04
第一种是错误的写法追问

但是可以运行,怎么回事?

相似回答
大家正在搜