私は、様々な理由から年齢グループルックアップ・テーブルの1〜100の数値を生成するOracle SQLのselect文はありますか?
Agegroup Freq
0-5 2.3
6-10 3.2
11-15 3.6
によって、いくつかの集計情報を引っ張るのクエリを持って、私は次の形式のすべての年齢1-100のためのルックアップテーブルであることを、出力データを必要とする
Age Agegroup Freq
1 0-5 2.3
2 0-5 2.3
3 0-5 2.3
4 0-5 2.3
5 0-5 2.3
6 6-10 3.2
7 6-10 3.2
8 6-10 3.2
9 6-10 3.2
10 6-10 3.2
...
どうすればこのことができますか?私はテーブルを作成することができないので、すべての年齢が1〜100歳の年齢の選択文を作成し、計算された頻度を持つ元のクエリに結合する方法があると思っていますagegroup - この
のようなものSELECT t1.age, [case when statemenet that assigns the correct age group from t1.Age] "Agegroup"
FROM ([statemement that generates numbers 1-100] "age") t1
JOIN (Original query that creates the aggreated agegroup data) t2 on t1.Agegroup = t2.Agegroup
だから私は二つの質問
- を持っているが、これは全く理にかなったアプローチですか?
私は探しているt1を生成することは可能ですか?私。その後、agegroupによって周波数を持つクエリで結合することができ、フォーム
Age Agegroup 1 0-5 2 0-5 3 0-5 4 0-5 5 0-5 6 6-10 7 6-10 8 6-10 9 6-10 10 6-10
のT1を作成するselect文...
?
これは番号1-100を生成します: 'デュアルからnとROWNUMの選択接続レベル<= 100; ' –
[1から100までの数字のリストを生成するためのSQLの重複]可能性があります(http://stackoverflow.com/questions/2847226/sql-to-generate-a-list-of- 1から100までの数字) – sstan
あなたのexa mple出力には年齢0がありませんが、それは意図的ですか?すべての範囲は5年です(ゼロが含まれる場合、最初の範囲を除く)?代わりに元のクエリを変更することも可能です。たとえば、これは、解析機能を使用して一度に行うことができます。 –