2016-11-07 4 views
1

私のmySQLデータベースでは、各セクターの財務比率の平均値を表示しようとしていますので、セクターごとのベンチマーク値を持つことができます。2つのSQLテーブルを参照する際のトラブル

  Companies 

| companyName |ティッカー|セクター|

 profitability 

|ティッカー| profitMargin | returnOnAssets |

は私のクエリは、これまでの私の出力は、各部門とその平均値を示し、この

SELECT c.sector, AVG(p.profitMargin) , AVG(p.returnOnEquity) 
FROM Companies c, profitability p 
GROUP BY c.sector 

ですが、そのが正しくそれらを平均していないので、値は、各タプルで同じです。ヘルプは非常に高く評価されます。

UPDATE * ので、私は左に参加しようと、それは間違いなく良く見える、

query results

私は私の問題が原因NULL値に別の場所であると仮定します。実際のリレーションでは値がNULLではないためです。

+2

参加する必要があります。会社のすべてのレコードは、収益性のあるすべてのレコードに結合されます。テーブルはどのように関連していますか?ティッカー?もしそうなら、scaisEdgeは正しい軌道にあるようです。 – xQbert

答えて

0

は、あなたはあなたが現在cartesean製品を生成している

SELECT c.sector, AVG(p.profitMargin) , AVG(p.returnOnEquity) 
FROM Companies c 
left join profitability p on c.ticker = p.ticker 
GROUP BY c.sector 
+0

現在、1つのセクタだけが表示されています...プライマリキーが正しくない可能性がありますか? – Donaldino

+1

あなたは質問を適切なデータサンプルと期待される結果で更新する必要があります。とにかく左の結合で試してみてください(いくつかのキーは一致しませんでした)..私はよく唯一の列であるためティッカーを使用しました – scaisEdge

+0

ありがとう!結果を更新しました。ティッカーは両方の関係のプライマリキーです – Donaldino

関連する問題