Ich habe eine Abfrage, die einige aggregierte Statistiken nach AltersgruppeOracle SQL SELECT-Anweisung, die Zahlen 1-100 für eine Nachschlagetabelle generiert?
Agegroup Freq
0-5 2.3
6-10 3.2
11-15 3.6
Aus verschiedenen Gründen zieht, muß ich die Ausgangsdaten eine Lookup-Tabelle 1-100 im folgende Format
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
...
für jedes Alter sein
Wie könnte ich das tun? Ich bin nicht in der Lage, Tabellen zu erstellen, also denke ich, wenn es eine Möglichkeit gibt, eine Art Select-Anweisung zu schreiben, die alle Altersgruppen von 1 bis 100 und die Altersgruppe enthält und dann zu der ursprünglichen Abfrage mit den berechneten Häufigkeiten hinzufügt Altersklasse - so etwas wie dies
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
So habe ich zwei Fragen
- Ist dies ein Ansatz, der überhaupt Sinn macht?
Ist es möglich, den t1 zu generieren, den ich suche? I.e. eine select-Anweisung, die eine t1 der Form schaffen
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
...
, die dann mit der Abfrage verbunden werden könnten, die die Häufigkeit von Altersklasse hat?
Dies wird Zahlen generieren 1-100: 'wählen rownum als n von Dual connect by level <= 100; ' –
Mögliches Duplikat von [SQL zum Generieren einer Liste von Zahlen von 1 bis 100] (http://stackoverflow.com/questions/2847226/sql-to-generate-a-list-of- Zahlen von 1 bis 100) – sstan
Ihr exa mple Ausgabe hat kein Alter 0, ist das absichtlich? Sind alle Bereiche 5 Jahre (außer der ersten, wenn Null enthalten ist)? Und ist es möglich, stattdessen die ursprüngliche Abfrage zu modifizieren - vielleicht könnte dies beispielsweise mit analytischen Funktionen auf einmal gemacht werden. –