I'm trying to create a function which calculates the nearest neighbors under a certain length in a table s_1 an stores them in an output table.
This is what I've got so far:
CREATE OR REPLACE FUNCTION NearestN() RETURNS TABLE ( a integer, b integer, ST_Distance integer ) AS $$ SELECT ST_Distance(a.the_geom , b.the_geom ) from s_1 a, s_1 b WHERE a.id < b.id AND ST_DWithin(a.the_geom,b.the_geom, 50.0) ORDER BY ST_Distance(a.the_geom, b.the_geom) ASC LIMIT 25; $$ LANGUAGE plpgsql;
Needless to say to function is not working at all (I'm very new to sql) and I think my calculation does not only get me the nearest neighbor but all distances under a certain length.
And is it possible to make the length an argument of the function so I can vary just by calling the function?