"so", "browser", "timezone"과 같은 사용자 클릭에 대한 정보를 저장하는 테이블이 있습니다. 각 열의 해체를 만들어 각각의 열 차트를 작성해야합니다.POSTGRES 9.6 : 하나의 쿼리에서 테이블의 각 열의 비율로 분해 (disaggregation)를 수행하려면 어떻게해야합니까?
이{"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"}]} }
테이블 정의는 다음과 같습니다 :처럼 나는 JSON 결과를 필요
=================================
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 배열을 만들려고했습니다. 행운, 어떤 아이디어도없이?