2017-09-27 15 views
0

私は、各テーブルで計算された平均犯罪率より低い犯罪率を持つ地区を探しています。私は3つの異なるテーブルのためにこれを行うと仮定され、各テーブルは独自の独自の平均犯罪率を持つ必要があります。これが私のやり方ですが、もっと良い方法がないのだろうかと思っていました。ストアドプロシージャや関数としてこれを書いた方が良いでしょうか(私はどうしたらよいかわかりません)?どのようにこれを行うことができますか?複数のテーブルの平均料金より低い料金を見つける

それぞれT1、T2、T3はこの例の状態です。私は3つの州の地区を眺めており、それぞれの州の平均犯罪率を求めています。それから、その平均を下回る地区を印刷したいと思います。結果が出ている組合結果セットを特定することも嫌いです。

SELECT district, population 
FROM T1 
WHERE (crime/Population) < (SELECT AVG(crime/population) From T1) 
UNION ALL 
SELECT district, population 
FROM T2 
WHERE (crime/Population) < (SELECT AVG(crime/population) From T2) 
UNION ALL 
SELECT district, population 
FROM T3 
WHERE AND (crime/Population) < (SELECT AVG(crime/population) From T3) 
+0

をもたらすために(T1、T2、T2)テーブルごとに(犯罪/人口)をもたらすために列を追加し、テーブルを作成することができT1は何ですか? T2とは何ですか? T3とは何ですか?参照:[私は非常に単純なSQLクエリと思われるものに対してMCVEを提供するのはなぜですか?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve- for-what-like-to-a-very-simple-sql-query) – Strawberry

+0

T1、T2、T3は状態です。 – Rubiks

+0

あなたのスキーマの修正を真剣に検討してください。あなたは50ではなく1つのテーブルが必要です! – Strawberry

答えて

0

ソリューション簡単なあなたはAVG(犯罪/人口)

関連する問題