, 당신은 mn_sodium.meas_amt
및 m.name
당 mn_cholesterol.meas_amt
의 값의 합계를 원한다. 당신은 m.name
에 의해 분할 된 행 세트에서 동일한 결과 값을 원하는대로 수행 할 수 있습니다 간단한 사용 m.name
인 window functions의 PARTITION BY
:
SELECT
r.recipe_id "Recipe ID"
,r.name "Recipe Name"
,m.name "Meal Name"
,array_agg(distinct(bucket.name)) as "Plans"
,mn_sodium.meas_amt "Recipe Sodium"
,mn_cholesterol.meas_amt "Recipe Cholesterol"
,sum(mn_sodium.meas_amt) OVER(PARTITION BY m.name) AS "Meal Sodium"
,sum(mn_cholesterol.meas_amt) OVER(PARTITION BY m.name) "Meal Cholesterol"
FROM
...
는 재사용을 위해 따로 창을 명명되어 사용할 수있는 또 다른 구문 :
SELECT
r.recipe_id "Recipe ID"
,r.name "Recipe Name"
,m.name "Meal Name"
,array_agg(distinct(bucket.name)) as "Plans"
,mn_sodium.meas_amt "Recipe Sodium"
,mn_cholesterol.meas_amt "Recipe Cholesterol"
,sum(mn_sodium.meas_amt) OVER w_meal AS "Meal Sodium"
,sum(mn_cholesterol.meas_amt) OVER w_meal "Meal Cholesterol"
FROM
...
WINDOW w_meal AS (PARTITION BY m.name)
간단히 환상적입니다! 정확히 내가 필요로하는 것. 나는 방법이 있다고 생각했다. 고맙습니다! – Midwire
환영합니다 ... : D – MatheusOl