2016-11-07 1 views
1

mySQL 데이터베이스의 경우 각 섹터 재무 비율의 평균을 표시하려고하므로 섹터 당 벤치 마크 값을 가질 수 있습니다.두 개의 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

이제는 하나의 섹터 만 표시됩니다 ... 기본 키가 잘못 될 수 있습니까? – Donaldino

+1

당신은 질문을 적절한 데이터 샘플과 기대되는 결과로 업데이트해야합니다 .. 어쨌든 왼쪽 조인을 시도하십시오. (일부 키는 일치하지 않습니다 ..) 공통적으로 유일한 컬럼이기 때문에 티커를 사용했습니다 – scaisEdge

+0

대단히 감사합니다! 결과를 업데이트했습니다. 시세표는 두 관계 모두에서 기본 키입니다 – Donaldino

관련 문제