PostgreSQL среднее в строке

Рейтинг: 0Ответов: 1Опубликовано: 26.01.2015

Может, вопрос и простой, но гугл отчаянно пытается меня отправить находить среднее по столбцу, а мне надо по строке.

     SELECT 
            "FH_09_Q" ,                             
            "FH_10_Q" ,                             
            "FH_11_Q" ,
          ("FH_09_Q" + "FH_10_Q" + "FH_11_Q"),
            ("FH_09_Q" + "FH_10_Q"+ "FH_11_Q")/3        
            FROM 
            "SC_Wonder"."TMining_New" 
            where "FMineObj_ID" = 16
            and "FDate" ='2015-01-26'

В общем, есть строка с данными. Как найти сумму и среднее при условии, что есть пустые поля?

UPD

     SELECT 
        "FH_09_Q" ,                             
        "FH_10_Q" ,                             
        "FH_11_Q" ,
    (COALESCE("FH_09_Q",0) + COALESCE("FH_10_Q",0) + COALESCE("FH_11_Q",0)) as sum,
        (COALESCE("FH_09_Q",0) + COALESCE("FH_10_Q",0) + COALESCE("FH_11_Q",0))/3 as avg
   
        FROM 
        "SC_Wonder"."TMining_New" 
        where "FMineObj_ID" = 16
        and "FDate" ='2015-01-26'

alt text

но при таком случае как узнать число непустых полей?

Ответы

▲ 2Принят

Видимо вам нужен COALESCE.

(COALESCE(FH_09_Q,0) + COALESCE(FH_10_Q,0) + COALESCE(FH_11_Q,0))/3