2

我有一个房地产交易数据库。用简单的英语,我正在尝试编写一个查询来查找每个城市最昂贵的 N 栋公寓楼。

我有以下相关领域:

Address
City
Sold Price
Sold Date

为了解决这个问题,我的假设是我需要按地址和按城市分组取平均售价,限制为 N,并按平均价格排序。为了弄清楚哪些地址可能是公寓楼,人们会期望在短时间内具有相同地址的大量交易是公寓楼(地址不包括单元#)。因此,如果 XYZ 地址在定义的时间范围内包含在 N 次交易中,则假定它是一栋公寓楼。

披露:我对 SQL 很熟悉,所以到目前为止我所做的研究让我有点困惑。

任何帮助将非常感激!

4

1 回答 1

1

在不知道 SQL 的确切品牌的情况下,您可能需要查找一些语法,但这可能有效:(前 10 名,其中 5 次销售在日期范围内)

 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(*) 背后的想法只是意味着有多少行

于 2012-06-06T02:37:45.443 回答