SQL вычисляет средние значения из многочисленных полей таблицы

#sql

#sql

Вопрос:

Я получил следующую таблицу

 values_table
-------------
created - 02022021
owner - john
value.measure1 - 10
value.measure2 - 2
value.measure3 -7
 

Мне нужно создать запрос, который возвращает среднее значение всех полей, начинающееся со ‘value’.

До сих пор мне удавалось написать что-то вроде этого

 SELECT AVG(
  select * from values_table.columns 
    where column_name like 'value.'
  )
  FROM values_table
 

Комментарии:

1. Какую базу данных вы используете? Являются ли ваши имена столбцов values_table crreated, owner, value.measure1, value.measure2 и value.measure3?

Ответ №1:

Используйте case выражение:

 SELECT AVG(CASE WHEN column_name like 'value.%' THEN col2 END)
FROM values_table;
 

Или:

 SELECT AVG(column_name)
FROM values_table
WHERE column_name like 'value.%';