fixed duplicities

This commit is contained in:
abelvm 2016-09-30 18:32:20 +02:00
parent 45e30973a0
commit 7c4849d62e

View File

@ -28,8 +28,8 @@ DECLARE
s bigint;
BEGIN
-- init salesmen weights to zero
we := array_fill(0, ARRAY[array_length(salesmen_id,1)]);
-- init salesmen weights to 1
we := array_fill(1, ARRAY[array_length(salesmen_id,1)]);
-- init results
results := array_fill(''::text, ARRAY[array_length(salesmen_id,1)]);
@ -141,10 +141,12 @@ BEGIN
results[s] := cids[i]::text;
we[s] := we[s] + cws[i];
flag := true;
EXIT;
ELSEIF (we[s] + cws[i]) <= lim::numeric THEN
results[s] := results[s] || ',' || cids[i]::text;
we[s] := we[s] + cws[i];
flag := true;
EXIT;
ELSE
CONTINUE;
END IF;
@ -190,14 +192,14 @@ BEGIN
d.sales_id as salesman,
0.0 as dist
FROM d LEFT JOIN a
ON d.c_id::bigint = a.id;
ON d.c_id::bigint = a.id::bigint;
END;
$$ language plpgsql;
-- ====================== ^^^ ====================================
-- test
-- ====================== ^^^ ====================================
-- ====================== ^^^ ====================================
-- test 1
-- ====================== ^^^ ====================================
WITH
a0 AS (
with gs as (SELECT generate_series(1001,1100) as g) select array_agg(g::bigint) as id from gs
@ -224,4 +226,36 @@ CDB_SalesForce(
a0.id
) test;
-- ====================== ^^^ ====================================
-- test 2
-- ====================== ^^^ ====================================
with
clients as(
SELECT
array_agg(cartodb_id) as id,
array_agg(the_geom) as geo,
array_agg(plugs::numeric) as w
FROM abel.charging_stations
where cartodb_id % 8 = 0 limit 250
),
salesreps as(
SELECT
array_agg(cartodb_id) as id,
array_agg(the_geom) as geo
FROM abel.base where country = 'Spain' and the_geom is not null
)
SELECT
test.*
FROM
clients,
salesreps,
CDB_SalesForce(
salesreps.geo,
salesreps.id,
clients.geo,
clients.id
) test