Ich habe eine Osm-Tabelle mit allen Tags in der Hstore-Spalte namens Tags gefunden.Wie Hstore Schlüssel und Werte in separate Spalten in Postgres zerlegen
Ich möchte eine Abfrage schreiben, die eine Tabelle mit allen Spalten der Tabelle und zusätzlichen Spalten für jedes Tag mit jedem Schlüssel als Spaltenname und den Wert darunter zurückgibt. Wie gehe ich da vor?
So wird mein eingegeben werden:
Item_id | tags |
----------+-------+
1614 | apple=2,bees=150|
1938 | apple=1,bees=50 |
1983 | apple=1,bees=50 |
1322 | apple=1,bees=100|
Ausgabe des Skripts
item_id | apple | bees
---------+-------+------
1614 | 2 | 150
1938 | 1 | 50
1983 | 1 | 50
1322 | 1 | 100
unter Berücksichtigung sein wird, die jede Zeile eine variable Menge von Tags haben und ich weiß nicht, was die Zählungen und was sind die Schlüssel an jeder Spalte, so wie gehe ich so zum Beispiel
outp ut wird:
item_id | apple | bees | green | red|
---------+-------+----+--------+----+
1614 | 2 | 150 |345| NULL|
1938 | 1 | 50 |NULL| NULL|
1983 | 1 | 50 |NULL| NULL|
1322 | 1 | 100 |NULL| 346|
Ich muss erwähnen, dass dies wahrscheinlich nicht gut Idee. In den OSM-Daten gibt es über 50.000 eindeutige Tags. Die meisten Apps werden eine Teilmenge vordefinieren und Spalten für sie und Hstore für den Rest verwenden. Diese Untergruppe könnte die gebräuchlichsten Tags oder domänenbezogen (z. B. Straßen) sein. Bedenken Sie auch, dass Postgres ein Limit von 250-16000 Spalten hat (abhängig vom Typ). –