我有一个房地产交易数据库。用简单的英语,我试图写一个查询,找到每个城市最昂贵的N公寓楼。
我有以下相关领域:
Address
City
Sold Price
Sold Date
要解决这个问题,我的假设是我需要按地址和城市分组的平均售价,以N为限,并按平均价格排序。为了弄清楚哪些地址可能是公寓楼,人们会期望在很短的时间内将具有相同地址的大量交易作为公寓楼(地址不包括单位#)。因此,如果XYZ地址包含在定义的时间范围内的N个事务中,则将其假定为公寓楼。
披露:我在SQL中非常环保,所以到目前为止我所做的研究让我有些困惑。
非常感谢任何帮助!
答案 0 :(得分: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等“top”的更多信息。 http://www.w3schools.com/sql/sql_top.asp
你可以在一个选择中完成所有这些但有时我使用这样的内部表来分离逻辑..计数(*)背后的想法只是意味着多少行