在這裏,下面的查詢將給出平均年齡在一個城市的居民數量的結果。 Group BY將城市和居民的聚合功能應用爲Count和Age作爲AVG。找到人姓名在城市
select city, count(*) as residents, avg(age) as AverageAge
from people
group by city
同樣地,我希望居民在城市的名稱以最大年齡
select city, name, max(age) as AverageAge
from people
group by city
但此查詢未正常工作名是不是有在GROUP BY子句也不作爲一個聚合函數
能否請你幫我在這。
看起來完全乾淨給我;我就是這麼做的。使用OLAP函數可能會有不同的做法,但它們對於這種情況並不重要。請注意,如果Whoville中有三個人都是102歲,那麼Whoville將生成三行;這不是查詢中的缺陷,而是正確的答案。如果有一個在同一天出生的雙胞胎之間進行選擇的標準,那麼需要在查詢規範中記錄這些標準。有人可能會問爲什麼數據庫記錄年齡而不是出生日期;年齡不斷變化,但出生日期不會。 –
約阿希姆的解決方案看起來稍微快一些,儘管我認爲它是可以忽略的(請參閱此編輯版本的SQL小提琴的執行計劃) - http://sqlfiddle.com/#!2/57b18/2 –
@AaronNewton好點在查詢計劃中,我很慚愧地說我甚至沒有看過他們。向我的帖子添加了更好的查詢。 –