Ich habe Daten mit einem hstore wie folgt aus:Aggregate hstore in Postgres innerhalb GROUP BY
|brand|account|likes|views |
|-----|-------|-----|----------------------|
|Ford |ford_uk|1 |"3"=>"100" |
|Ford |ford_us|2 |"3"=>"200", "5"=>"10" |
|Jeep |jeep_uk|3 |"3"=>"300" |
|Jeep |jeep_us|4 |"3"=>"400", "5"=>"20" |
Ich mag wäre in der Lage sein, die hstores durch Schlüssel zu fassen, nach Marke gruppiert:
|brand|likes|views |
|-----|-----|----------------------|
|Ford |3 |"3"=>"300", "5"=>"10" |
|Jeep |7 |"3"=>"700", "5"=>"20" |
This answer gibt eine gute Lösung, wie Sie dies ohne eine GROUP BY tun können. Anpassung an diese Situation etwas wie gibt:
SELECT
sum(likes) AS total_likes,
(SELECT hstore(array_agg(key), array_agg(value::text))
FROM (
SELECT s.key, sum(s.value::integer)
FROM (
SELECT((each(views)).*)
) AS s(key, value)
GROUP BY key
) x(key, value)) AS total_views
FROM my_table
GROUP BY brand
jedoch ergibt dies:
ERROR: subquery uses ungrouped column "my_table.views" from outer query
Jede Hilfe dankbar!
Wirklich cool @Abelisto. Sehr geschätzt. –