我有以下查詢只得到平均值:如何從連接表
with D1 as (
select v06.ID
,AVG(TD.A) as A_avg
,AVG(TD.B) as B_avg
from v06
inner join v07 TD
on v06.ID= TD.ID
and v06.timestamp= TD.timestamp
where v06.X is not NULL
group by v06.ID
)
select * from D1
現在,我通過v06.ID.分組但是,我想要的是保持v06的所有字段,而只添加表TD中的兩個平均值。所以我嘗試過:
with D1 as (
select v06.*
,AVG(TD.A) as A_avg
,AVG(TD.B) as B_avg
from v06
inner join v07 TD
on v06.ID= TD.ID
and v06.timestamp= TD.timestamp
where v06.X is not NULL
group by v06.*
)
select * from D1
但是,這給了我'選擇語句上的非法符號*'。有誰知道如何做到這一點?
你真的有你在陳述中的那些'**'? – jarlh
一般GROUP BY規則說: 「如果指定了GROUP BY子句,則SELECT列表中的每個列引用都必須標識分組列或作爲set函數的參數。」即你不能選擇所有那樣的列,也不要在GROUP BY中明確列出它們。 – jarlh
不,那是我試圖強調第一個和第二個查詢之間的區別。 – marqram