select target_id, targets.name, count(*) as n, json_object( "href", "/russian-ads/faceted-targets?targets=" || urllib_quote_plus( json_insert(:targets, '$[' || json_array_length(:targets) || ']', target_id) ), "label", json_insert(:targets, '$[' || json_array_length(:targets) || ']', target_id) ) as apply_this_facet, json_object( "href", "/russian-ads/display_ads?_targets_json=" || urllib_quote_plus( json_insert(:targets, '$[' || json_array_length(:targets) || ']', target_id) ), "label", "See " || count(*) || " ads matching " || json_insert(:targets, '$[' || json_array_length(:targets) || ']', target_id) ) as browse_these_ads from ad_targets join targets on ad_targets.target_id = targets.id where json_array_length(:targets) == 0 or ad_id in ( select ad_id from "ad_targets" where "ad_targets".target_id in (select value from json_each(:targets)) group by "ad_targets".ad_id having count(distinct "ad_targets".target_id) = json_array_length(:targets) ) and target_id not in (select value from json_each(:targets)) group by target_id order by n desc
targets
This data as JSON, CSV