Суммирование объединенных полей в MySQL - PullRequest
1 голос
/ 28 марта 2012

В базе данных есть поля для оценки пользователей.Они выглядят следующим образом:

id | user_id | month | week | activity | speed

Итак, я хочу получить активность + скорость в одном поле, НО из результатов GROUP_CONCAT, так как у меня несколько оценок для одного пользователя(разные недели и месяцы).

Мой текущий запрос выглядит следующим образом:

SELECT *, GROUP_CONCAT( CONVERT( tfts_bodovanja.activity + tfts_bodovanja.speed, 
      CHAR( 8 ) ) SEPARATOR  '+' ) AS indeks
FROM tfts_fans
GROUP BY user_id
ORDER BY indeks DESC

И он возвращает (для выделенной части):

191.4000+383.1999

И упорядочениене работает, очевидно.

Итак, все, что я хочу, это просто суммировать эти два числа и mysql вернуть их как FLOAT.Как это достижимо?

1 Ответ

2 голосов
/ 28 марта 2012

GROUP_CONCAT со знаком «+» создаст строку и не будет выполнять сложение.Предполагая, что вы хотите получить сумму (активность + скорость) для каждого пользователя, вы можете сделать что-то вроде этого

SELECT user_id,
       SUM( activity + speed ) AS indeks
FROM tfts_fans 
GROUP BY user_id 
ORDER BY indeks DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...