2

私は不動産取引のデータベースを持っています。平易な英語で、都市ごとに最も高価な N 棟の集合住宅を検索するクエリを作成しようとしています。

次の関連フィールドがあります。

Address
City
Sold Price
Sold Date

解決するには、住所ごとの平均販売価格を取得し、N の制限で都市ごとにグループ化し、平均価格で並べ替える必要があると仮定しています。どの住所が集合住宅である可能性が高いかを調べるには、短期間に集合住宅であると考えられる同じ住所のトランザクション数が多いことが予想されます (住所にはユニット番号は含まれません)。したがって、XYZ アドレスが定義された時間範囲内の N 件のトランザクションに含まれている場合、それは集合住宅であると見なされます。

開示: 私は SQL にかなり慣れているので、これまでに行った調査で少し混乱しました。

どんな助けでも大歓迎です!

4

1 に答える 1

1

SQLの正確なブランドを知らなくても、いくつかの構文を調べる必要があるかもしれませんが、これはうまくいくかもしれません:

 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

おそらくこれをすべて1つの選択で行うことができますが、ロジックを分離するためにこのような内部テーブルを使用することがあります..count(*)の背後にある考え方は、行数を意味します

于 2012-06-06T02:37:45.443 に答える