2017-01-04 3 views
0

私は、彼らが示されるべき同じ分の価格で行がある場合にも、最低価格で行を選択しますクエリを作りたい...私の入力今SQLトップ

SELECT EB.RealEstateType,EB.Architecture,EB.Area,Price 
FROM Rents AS R 
INNER JOIN EstatesBasicInfo AS EB 
ON EB.RealEstateID=R.RealEstateID 
ORDER BY Price 

Output 

FirstColumnText|SecondColumnText|ThirdColumnText| 800,00 

FirstColumnText|SecondColumnText|ThirdColumnText| 800,00 

FirstColumnText|SecondColumnText|ThirdColumnText| 1500,00 

FirstColumnText|SecondColumnText|ThirdColumnText| 5000,00 
まで

例えば、このデータでは、トップ2を表示したいのですが、(同じ価格で)最小の重複量を常に知るわけではありません... ... 何か案は?

答えて

0

すべての絆

Select RealEstateType,Architecture,Area,Price 
From (
     SELECT EB.RealEstateType,EB.Architecture,EB.Area,Price 
       ,DR = DENSE_RANK() over (Order By Price) 
     FROM Rents AS R 
     INNER JOIN EstatesBasicInfo AS EB 
     ON EB.RealEstateID=R.RealEstateID 
     ) A 
Where DR=1 
+1

答えを待っている間に、私は他の方法を考えHM R INNERはEB.RealEstateID = R.RealEstateID ON EB AS EstatesBasicInfoを結合として賃料FROM EB.RealEstateType、EB.Architecture、EB.Area、価格 を選択私たちは、ウィンドウの機能を持っていた前に価格=(R INNER価格BY EB.RealEstateID = R.RealEstateID オーダーのEstatesBasicInfo AS EB を結合として賃料のトップ1価格 を選択) – MitkoZ

+0

@MitkoZは、それはのように私の選択だっただろうWHEREよく –

+0

@MitkoZ寒さのためのチキンスープのように...試して傷つけることはできませんでした。 :) –

0

を取得するために)(窓関数DENSE_RANKを使用することができますあなたは

SELECT EB.RealEstateType,EB.Architecture,EB.Area 
FROM Rents AS R 
INNER JOIN EstatesBasicInfo AS EB 
ON EB.RealEstateID=R.RealEstateID 
WHERE Price = (
       Select min(price) 
       FROM Rents AS R 
       INNER JOIN EstatesBasicInfo AS EB 
       ON EB.RealEstateID=R.RealEstateID 
      ) 

サブクエリを使用することができますしかし、私はちょうど余分なプログラミングの代わりに、このSQLを実行するためにお勧めします。

関連する問題