0

MySQL データベースに、新しいデータが定期的に追加される 2 つのテーブルがあります。1 つは、賃貸物件のリストとその特徴 (ベッド 2 台、バス 2 台、場所、レンタル価格など) です。2 番目の表は、現在販売中の物件のリストです。次のクエリを使用して、賃貸テーブルから、特定のタイプの物件が特定の場所で取得している平均賃貸料を判断できます。

SELECT bed, bath, type, suburb, postcode, AVG(price)
FROM rent_suburbs
GROUP BY bed, bath, type, suburb, postcode

タイプと場所に一致する物件の平均賃貸価格よりも販売価格のユーザー定義のパーセンテージが低い物件を、buy_items テーブルから選択できるようにしたいと考えています。

誰かが提案した以下のコードを修正しようとしていますが、行き詰まっています。

select listing, bed, bath, type, address, postcode, state, price
from 
   buy_items
where (price*.0014) < avg(price) from 
select 
    bed, bath, type, suburb, postcode, avg(price)
from
    rent_items
group by bed , bath , type , suburb , postcode
/* and bed, bath, type, suburb and postcode match the buy_items property ????

私は新しいので、どんな助けも大歓迎です。ありがとう

テーブル構造は次のとおりです。

buy_items

buy_items_id2   int(11)
car         int(11)
price   int(11)
listing varchar(12)
bed         int(11)
bath    int(11)
suburb  varchar(25)
state   int(11)
scrapedate  int(11)
address varchar(45)
type    varchar(25)
postcode    int(11)

rent_items

rent_items_id2  int(11)
car         int(11)
price   int(11)
listing int(11)
bed         int(11)
bath    int(11)
suburb  varchar(25)
state   varchar(5)
scrapedate  int(11)
address varchar(45)
type    varchar(25)
postcode    int(11)
4

1 に答える 1

1

これを試して:

   select listing, b.bed, bath, type, address, postcode, state, price
    from 
       buy_items b
    join (
    SELECT bed, bath, type, suburb, postcode, AVG(price) as avg_price
    FROM rent_suburbs
    GROUP BY bed, bath, type, suburb, postcode ) a
    on a.bed=b.bed and a.bath=b.bath and a.suburb=b.suburb and a.postcode=b.postcode
    where (b.price*.0014) < a.avg_price;
于 2013-11-05T13:24:40.357 に答える