lamo4ok
@lamo4ok
Программист

Как мне посчитать одним запросом «стоимость» разных сочетаний полей в таблице?

Есть таблица с полями:
  • task
  • user
  • param1
  • param2
  • param3
  • param4

Как построить запрос, который в зависимости от той или иной "стоимости" сочетаний полей param(n) будет выводить сумму этих "стоимостей" для каждого пользователя? То есть на выходе я хочу получить что-то вроде этого:

| task 	| user 	| formula_1_cost 	| formula_1_cost 	| formula_1_cost 	|
|------	|------	|----------------	|----------------	|----------------	|
| 1    	| 1    	| 5              	| 5              	| 25             	|
| 1    	| 2    	| 0              	| 0              	| 26             	|
| 1    	| 3    	| 23             	| 0              	| 4              	|


Количество формул, понятное дело, не зависит от количества полей param(n). Спрашивайте, если что-то нужно дополнить, в комментариях к вопросу, я пока что с трудом понимаю, что нужно еще для решения этой задачи предоставить.
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
BojackHorseman
@BojackHorseman
...в творческом отпуске...
SELECT
     CASE WHEN <condition> THEN <formula1> ELSE <formula2> END
...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Если "формул" - счислимое количество и они известны заранее - то case из варианта Иван

Иначе - разворачивать unpivot/pivot и получать некую развернутую многомерность, где одно измерение юзер, второе - параметр, третье - производное от идентификатора формулы...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы