-- Example: http://bl.ocks.org/andrewxhill/8306637 WITH hgridA AS -- BIGS (SELECT CDB_HexagonGrid(ST_Expand(!bbox!, greatest(!pixel_width!,!pixel_height!) * 60), greatest(!pixel_width!,!pixel_height!) * 60) AS cell), bigs AS (SELECT * FROM (SELECT ST_Centroid(ST_Collect(i.the_geom_webmercator)) AS the_geom_webmercator, count(i.cartodb_id) AS points_count, 1 AS cartodb_id, array_agg(cartodb_id) AS id_list FROM hgridA, (SELECT * FROM stories_w_current --JS_PLACEHOLDER ) i WHERE ST_Intersects(i.the_geom_webmercator, hgridA.cell) GROUP BY hgridA.cell) t WHERE points_count > 200), hgridB AS -- MIDS (SELECT CDB_HexagonGrid(ST_Expand(!bbox!, greatest(!pixel_width!,!pixel_height!) * 50), greatest(!pixel_width!,!pixel_height!) * 50) AS cell), mids AS (SELECT * FROM (SELECT ST_Centroid(ST_Collect(i.the_geom_webmercator)) AS the_geom_webmercator, count(i.cartodb_id) AS points_count, 1 AS cartodb_id, array_agg(cartodb_id) AS id_list FROM hgridB, (SELECT * FROM stories_w_current --JS_PLACEHOLDER ) i WHERE ST_Intersects(i.the_geom_webmercator, hgridB.cell) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM bigs) GROUP BY hgridB.cell) t WHERE points_count > 75), hgridC AS -- MIDSMALLS (SELECT CDB_HexagonGrid(ST_Expand(!bbox!, greatest(!pixel_width!,!pixel_height!) * 40), greatest(!pixel_width!,!pixel_height!) * 40) AS cell), midsmalls AS (SELECT * FROM (SELECT ST_Centroid(ST_Collect(i.the_geom_webmercator)) AS the_geom_webmercator, count(i.cartodb_id) AS points_count, 1 AS cartodb_id, array_agg(cartodb_id) AS id_list FROM hgridC, (SELECT * FROM stories_w_current --JS_PLACEHOLDER ) i WHERE ST_Intersects(i.the_geom_webmercator, hgridC.cell) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM bigs) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM mids) GROUP BY hgridC.cell) t WHERE points_count > 45), hgridD AS -- SMALL (SELECT CDB_HexagonGrid(ST_Expand(!bbox!, greatest(!pixel_width!,!pixel_height!) * 30), greatest(!pixel_width!,!pixel_height!) * 30) AS cell), smalls AS (SELECT * FROM (SELECT ST_Centroid(ST_Collect(i.the_geom_webmercator)) AS the_geom_webmercator, count(i.cartodb_id) AS points_count, 1 AS cartodb_id, array_agg(cartodb_id) AS id_list FROM hgridD, (SELECT * FROM stories_w_current --JS_PLACEHOLDER ) i WHERE ST_Intersects(i.the_geom_webmercator, hgridD.cell) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM bigs) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM mids) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM midsmalls) GROUP BY hgridD.cell) t WHERE points_count > 25), hgridE AS -- SMALLEST (SELECT CDB_HexagonGrid(ST_Expand(!bbox!, greatest(!pixel_width!,!pixel_height!) * 20), greatest(!pixel_width!,!pixel_height!) * 20) AS cell), smallest AS (SELECT * FROM (SELECT ST_Centroid(ST_Collect(i.the_geom_webmercator)) AS the_geom_webmercator, count(i.cartodb_id) AS points_count, 1 AS cartodb_id, array_agg(cartodb_id) AS id_list FROM hgridE, (SELECT * FROM stories_w_current --JS_PLACEHOLDER ) i WHERE ST_Intersects(i.the_geom_webmercator, hgridE.cell) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM bigs) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM mids) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM midsmalls) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM smalls) GROUP BY hgridE.cell) t WHERE points_count > 1) SELECT the_geom_webmercator, 1 points_count, cartodb_id, ARRAY[cartodb_id], 'origin' AS src FROM stories_w_current WHERE cartodb_id NOT IN (SELECT unnest(id_list) FROM bigs) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM mids) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM midsmalls) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM smalls) AND cartodb_id NOT IN (SELECT unnest(id_list) FROM smallest) UNION ALL SELECT *, 'bigs' AS src FROM bigs UNION ALL SELECT *, 'mids' AS src FROM mids UNION ALL SELECT *, 'midsmalls' AS src FROM midsmalls UNION ALL SELECT *, 'smalls' AS src FROM smalls UNION ALL SELECT *, 'smallest' AS src FROM smallest