今天在插入資料時,發下如下sql 死活報錯
insert
into test
select psnid,
sum(f1)
from psn
inner
join (select
max(year) lastyear, psnid
from wagedata t
group
by psnid) tmp
on psn.psnid = tmp.psnid
group
by psn.psnid
錯誤提示是: 不是group by 表示式
但是同樣的sql 在本人本機oracle上可以執行
經過對比,發現本機的oracle版本是 11.2.0.1.0 而客戶的oracle版本為11.2.0.4.0
最開始以為是bug
後來發現 將sql中的這個tmp的結果集 替換為了一張資料相同的表 ,就能夠正常查詢了。
至於算不算是bug 就不好說了,不過這算是11.2.0.1.0 與11.2.0.4.0 的一點差異吧
INSERT報錯提示不是Groupby表示式的問題
今天在插入資料時,發下如下sql 死活報錯 insert into test select psnid,sum f1 from psn inner join select max year lastyear,psnid from wagedata t group by psnid tmp on ps...
報錯 不是GROUP BY 表示式
oracle庫中 group by後面必須加上你select後面所查詢的所有除聚合函式之外的所有字段。解決方法 將group by放入子查詢中使用或者將select後面的所有查詢字段放入group by 後。報錯 不是group by 表示式 例項 select sum hwjz rq from j...
ORA 00979 不是 GROUP BY 表示式
使用聚合函式中用group by來分組資料時特別說明了select 列表項中不存在的列可以出現在group by的列表項中,但反過來就不行了,在select列表項 現的列必須全部出現在group by後面 聚合函式除外 但一些朋友經常愛把select 列表項的中列忘了寫在group by中。於是就出...