我有数据,像这样的hstore:总结hstore 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" |
我想应该能总结通过键hstores,按品牌划分:
|brand|likes|views |
|-----|-----|----------------------|
|Ford |3 |"3"=>"300", "5"=>"10" |
|Jeep |7 |"3"=>"700", "5"=>"20" |
This answer为如何在没有GROUP BY的情况下提供了一个很好的解决方案。它适应这种情况给类似:
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
但是这给:
ERROR: subquery uses ungrouped column "my_table.views" from outer query
任何帮助表示赞赏!
真是太爽了@Abelisto。非常感激。 –