在数据库中,我有用于评分用户的字段。它们如下:
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返回。这怎么可以实现?
答案 0 :(得分:2)
带有“+”的GROUP_CONCAT将创建一个字符串,不会添加。假设你想要每个用户的(活动+速度)之和,你可以做这样的事情
SELECT user_id,
SUM( activity + speed ) AS indeks
FROM tfts_fans
GROUP BY user_id
ORDER BY indeks DESC