powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как выбрать среднее но не учитывать нули
4 сообщений из 4, страница 1 из 1
как выбрать среднее но не учитывать нули
    #38831285
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем в теме написано в общем все что нужно. дополнительное условие - выбираю несколько столбцов
так что-то вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 
  "FMineObj_ID",
  avg("F_Value_Q")
FROM 
  "SC_Wonder"."TMining" 
  where "FDate" = '2014-12-08'
  and "F_Value_Q" !=0 
  group by   "FMineObj_ID",
  "F_Value_Q"


хорошо для одного столбца но
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
  "FMineObj_ID",
  avg("F_Value_Q"),
avg ("F_Value_Q2")
FROM 
  "SC_Wonder"."TMining" 
  where "FDate" = '2014-12-08'
  and "F_Value_Q" !=0 and "F_Value_Q2" !=0 
  group by   "FMineObj_ID",
  "F_Value_Q",
"F_Value_Q2"


не даст нужного результата
...
Рейтинг: 0 / 0
как выбрать среднее но не учитывать нули
    #38831306
этта
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DoomUnit,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
WITH v (a,b) AS (values 
(1,0)
,(1,0)
,(1,0)
,(1,0)
,(0,1)
,(0,1)
,(0,1)
,(0,null)
,(0,null)
,(0,null)
,(0,null)
,(0,null)
,(0,null)
,(0,null)
) 
SELECT 
avg(a)
,avg(CASE WHEN a<> 0 THEN a END)
,avg(b)
,avg(CASE WHEN b<> 0 THEN b END)
FROM v
...
Рейтинг: 0 / 0
как выбрать среднее но не учитывать нули
    #38832074
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
благодарю. чую то что нужно. видел подобное но реализованное на ms sql. но для постгри не нашел.
...
Рейтинг: 0 / 0
как выбрать среднее но не учитывать нули
    #38832088
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да все ок. только груп бай добавить надо было
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
  "FMining_ID",
  avg("F_Value_Q"),
  avg(CASE WHEN "F_Value_Fe"<> 0 THEN "F_Value_Fe" END)
   ,
  avg("F_Value_ZnO"),
    avg(CASE WHEN "F_Value_ZnO"<> 0 THEN "F_Value_ZnO" END)

FROM 
  "SC_Wonder"."TMining"
    where "FDate" = '2014-12-08'
    group by "FMining_ID" ,"F_Value_Q", "F_Value_ZnO"
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как выбрать среднее но не учитывать нули
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]