내가 노력하고 업데이트에 대한 총 수익 사무실에 위치한 다른 지역. 지역에 의해 정의된 원고는 다각형 모두에서 모양입니다.모양의 열입니다.
때 나는 쿼리를 실행하여 아래,MySQL 발생"R_INVALID_GROUP_FUNC_USE:잘못 사용한 그룹"
려고 적응 이 대답하지만,내가 알아낼 수 없는 논리와 조건부에 가입하고 데이터-그것은 간단하지 않습니다 추가로 하위와는 절이 있습니다. (또는 그것은?)
에 대한 컨텍스트가 약 350 지리와 150,000 소가 있습니다.
UPDATE
shapes s
LEFT JOIN offices ON (
CASE
WHEN s.type = 'circle' THEN ST_Distance_Sphere(o.coords, s.shape) < s.radius
ELSE ST_CONTAINS(s.shape, o.coords)
END
)
SET
s.totalRevenue = SUM(o.revenue);
업데이트:
이 작품은,그러나 그것은 느리고 복잡하다. 이 있는 빠른/더 간단한 방법은?
UPDATE
shapes s
LEFT JOIN (
SELECT
t.shape_id,
SUM(g.revenue) revenue
FROM
shapes t
LEFT JOIN offices o ON (
CASE
WHEN t.type = 'circle' THEN ST_Distance_Sphere(o.coords, t.shape) < t.radius
ELSE ST_CONTAINS(t.shape, o.coords)
END
)
GROUP BY
t.shape_id
) b ON s.shape_id = b.shape_id
SET
s.totalRevenue = b.revenue;