簡體   English   中英

按組返回前n個平均值

[英]Return top n average values by group

我有一個房地產交易數據庫。 用簡單的英語來說,我正在嘗試編寫查詢以查找每個城市最昂貴的N套公寓。

我有以下相關領域:

Address
City
Sold Price
Sold Date

要解決此問題,我的假設是我需要按地址和按城市分組的平均售價(上限為N)並按平均價格排序。 為了弄清楚哪些地址可能是公寓樓,人們希望在短時間內有大量具有相同地址的交易是公寓樓(這些地址不包含單元號)。 因此,如果在定義的時間范圍內N筆交易中包含XYZ地址,則將其假定為公寓樓。

披露:我對SQL非常了解,所以到目前為止我所做的研究使我有些困惑。

任何幫助將非常感激!

在不知道SQL確切品牌的情況下,您可能需要查詢一些語法,但這可能會起作用:(在日期范圍內有5筆銷售的前10位)

 select top 10 address,city, soldCount from 

    (

    select 

    address, city, count(*) as soldCount, average(sold_price) as myAvg


    group by address, city
having soldCount > 5
    where sold_date between '2012-05-01' and '2012-05-15'
    ) mytable order by soldCount

請參考此站點,以獲取有關Oracle等的“頂部”的更多信息。http://www.w3schools.com/sql/sql_top.asp

您可能可以一次選擇全部完成,但有時我會使用這樣的內部表來分隔邏輯。.count(*)背后的想法僅表示有多少行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM