我有一个存储用户点击信息的表格,例如“so”、“browser”、“timezone”。我需要对每一列进行分解以构建每一列的饼图。我需要一个json结果,例如:
{"results": {
"browser":[{"name":"Chrome","qty":50,"percentage:"50"},
{"name":"Firefox","qty":50,"percentage:"50"}], "SO":[{"name":"Linux","qty":50,"percentage:"50"},{"name":"WIndows","qty":50,"percentage:"50"}]} }
表定义为:
=================================
TABLE DEFINITION
=================================
Column Type Comment
sponsor_ad_click_id integer Auto Increment [nextval('ad_clicks_ad_click_id_seq')]
sponsor_ad_id integer
clicked_date timestamptz
browser text NULL
os text NULL
device text NULL
continent_code text NULL
continent_name text NULL
country_code text NULL
country_name text NULL
timezone text NULL
ip text NULL
social_network_id smallint NULL [1]
sponsor_id integer
我尝试过子查询,但我只能从每个返回一个值,
SELECT (select count(spac2.browser) FROM sponsor_ad_clicks spac2 where spac2.sponsor_ad_id = spac.sponsor_ad_id),
(select count(spac2.os) FROM sponsor_ad_clicks spac2 wheer spac2.sponsor_ad_id = spac.sponsor_ad_id),
(select count(spac2.device) FROM sponsor_ad_clicks spac2 where spac2.sponsor_ad_id = spac.sponsor_ad_id),
(select count(spac2.continent_name) FROM sponsor_ad_clicks spac2 where spac2.sponsor_ad_id = spac.sponsor_ad_id),
(select count(spac2.country_name) FROM sponsor_ad_clicks spac2 where spac2.sponsor_ad_id = spac.sponsor_ad_id),
(select count(spac2.timezone) FROM sponsor_ad_clicks spac2 where spac2.sponsor_ad_id = spac.sponsor_ad_id)
FROM sponsor_ad_clicks spac
WHERE spac.sponsor_ad_id = 2
这显然是不正确的,因为每个子查询只返回一个值,
我也尝试过构建一个没有任何运气的 json 数组,有什么想法吗?