繁体   English   中英

如何按列分组并返回其他列的SUM?

[英]How to group by a column and return SUM of other columns?

我正在按信息ID和锚点选择值:

 SELECT 
      infoid, 
      anchor, 
      value 
 FROM 
      infodata 
 WHERE 
      (infoid = 1) 
      OR (infoid = 2)
      OR (infoid = 3)
 ORDER BY 
      anchor ASC

此查询返回infoid,锚点和编号的列表:

infoid      anchor     value
------      -----      -----
1           10         500
2           10         600
3           10         700

1           20         800
2           20         900
3           20         1000

如何通过ANCHOR分组并返回3个信息的SUM()值? 返回如下内容:

anchor     value
-----      -----
10         500+600+700
20         800+900+1000

您需要使用GROUP BY子句:

SELECT
      anchor, 
      SUM(value) 
 FROM 
      infodata 
 WHERE 
      infoid IN (1,2,3)
 GROUP BY
      anchor
 ORDER BY 
      anchor ASC

如果您希望获得与您完全相同的结果,请使用此

SELECT
  anchor, 
  group_CONCAT(value separator '+') value
FROM  infodata 
WHERE infoid in (1,2,3)
GROUP BY anchor
ORDER BY anchor ASC;

结果:

 anchor     value
 -----      -----
 10         500+600+700
 20         800+900+1000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM