使用SELECT SUM()GROUP BY时,如何仍然获取单个值?

时间:2017-06-08 18:52:28

标签: php mysql sql

values = 2,3,4

执行JOIN (SELECT *, SUM(values) AS MaxValues FROM table GROUP BY id)时,$a = $data['MaxValues']将等于9。但是,我怎样才能提取单个值(2,3,4)?在$b = $data['values']上尝试foreach只会给我一个值。因为所需的GROUP BY,我假设。我还是新手。谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用values同时选择SUMJOIN。此外,如果您想获取所有值,则不需要GROUP BY,例如:

SELECT value, a.sum
FROM table, (SELECT SUM(value) AS `sum` FROM table ) a;

答案 1 :(得分:0)

您正在寻找group_concat(),我认为:

JOIN (SELECT id, SUM(values) AS MaxValues, group_concat(values) as values
      FROM table
      GROUP BY id)

注意:您不应将SELECT *GROUP BY一起使用。仅包含GROUP BY子句中的列。