Hay veces que estas trabajando con dos tablas de puntos pero al querer juntarlas o trabajar con ellas te de das cuenta de que una es de tipo punto y la otra de tipo multipunto; es entonces cuando te saltan las alarmas y puede cundir el desespero, en muchos casos porque ni siquiera habías pensado al principio como debía ser la información geométrica si multi o simple en la mayoría de los casos con una (geometría simple nos bastará). Hay una solución bastante sencilla que te paso a mostrar
Los pasos que vamos a mostrar son para postgis 2.0 Primero tenemos que averiguar si al pasar la gemetrias de multipoint a point podemos perder información. Realizaremos el siguiente query para saber si tenemos geometrias con mas de una parte:
SELECT COUNT(CASE WHEN ST_NumGeometries(geom) > 1 THEN 1 END) AS multi_geom, COUNT(geom) AS total_geom FROM mi_tabla;
Si el resultado del query es que las multi_geom son mayores que 0, tienes el riesgo de perder algo de información, si hay un 0 en esta columna podemos convertir-la sin ningún tipo de problemas. Si sabes de donde proviene la información esta parte es solo orientativa ,por ejemplo en el caso de que hayas importado a postgis sin tener en cuenta el tipo de geometría en el que se importaba, en este puedes hacer una conversión a tipo point sin ms problemas.
En el siguiente query lo que hace es cambiar la geometria de multipoint a point. En realidad lo que estamos haciendo es coger tan solo el primer punto del multipoint, de ahí el riesgo de perder información si los otros puntos contienen información distinta al primero.
ALTER TABLE mi_table ALTER COLUMN geom TYPE geometry(Point,4326) USING ST_GeometryN(geom, 1);
En este ejemplo hemos visto las funciones ST_NumGeometries y ST_ GeometryN. Pasar de point a multipoint es mucho mas sencillo i con menos riesgos basta con utilizar ST_Multi