计算array_agg中的值

问题描述

考虑以下数据:

|model| qty | color                              |
--------------------------------------------------
|  y  |  6  | {yellow,red,red}                   |
--------------------------------------------------
|  z  |  4  | {red,blue,yellow}                  |
--------------------------------------------------
|  x  |  9  | {yellow,yellow,yellow} |
--------------------------------------------------

是否可以在不使用子查询的情况下对下面数组中分组的每种“颜色”进行计数? (例如,对于“ y”,我将使用“ yellow:1”,“ red:2”)

SELECT model,SUM(qty),ARRAY_AGG(color) FROM test GROUP BY model;

类似的东西:

SELECT model,ARRAY_AGG(ARRAY[color,COUNT(*)::TEXT]) FROM test GROUP BY model;

示例代码:

CREATE TABLE test (model TEXT,qty DOUBLE PRECISION,color TEXT);

INSERT INTO test (model,qty,color) VALUES
('x',1,'yellow'),('y',('z',2,'red'),('x',3,'blue'),4,'yellow');

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)