簡體   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