Запрос mysql с математическими вычислениями

Здравствуйте!
Дано: таблица со следующими полями: id | A | B | C
Вопрос: как с помощью mysql найти число равное сумме значений рассчитанной по формуле: b*c, где
b=0,5*atan(B-5)+1; c = 1, если С = true или c = 0,2, если C = false; при этом A должно удовлетворять условию: A=3.

Пример:
id | A | B | C
0 | 3 | 5 | true = (0,5*atan(5-5)+1) * 1 = 1 // A=3
1 | 3 | 1 | true = (0,5*atan(1-5)+1) * 1 = 0,4 // A=3
2 | 2 | 1 | true = 0 // A!=3
3 | 3 | 5 | false = (0,5*atan(5-5)+1) * 0,2 = 0,2 // A=3

Результат: 1+0,4+0+0,2 = 1,6
  • Вопрос задан
  • 3389 просмотров
Решения вопроса 2
egor_nullptr
@egor_nullptr
select sum( if(a=3, (0.5*atan(b-5)+1) * (if(c, 1, 0.2)) , 0) ) from t1;
Ответ написан
Комментировать
@Nc_Soft
Отладка
SELECT id, (0.5*atan(B-5)+1)*(if(C='true', 1, 0.2)) as res FROM tbl WHERE A=3

Сумма
SELECT SUM((0.5*atan(B-5)+1)*(if(C='true', 1, 0.2))) as res FROM tbl WHERE A=3
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы