簡體   English   中英

GROUP_CONCAT或SUM,內部包含Count(*),在MySQL中為GROUP BY

[英]GROUP_CONCAT or SUM with Count(*) inside and GROUP BY in MySQL

我目前有這個查詢:

SELECT ((count(*) DIV 20) * 10) AS money_earned 
FROM ticket 
WHERE 
    closed_by = 269 AND 
    status = 1 AND
    closed_index >= TO_DAYS("2012/01/01") AND closed_index <= TO_DAYS("2013/01/01")
GROUP BY closed_index;

它產生此:

money_earned

60
50
30
20
20

有沒有辦法對這些行求和,或將結果行連接為字符串。 我嘗試使用GROUP_CONCAT,但收到“無效使用組功能”錯誤。

相反,如果可能的話,我想在一個查詢中產生以下內容:

money_earned
180

要么

money_earned
60,50,30,20,20

您可以將查詢用作子查詢:

select sum(money_earned), group_concat(money_earned)
from (SELECT ((count(*) DIV 20) * 10) AS money_earned 
      FROM ticket 
      WHERE closed_by = 269 AND 
            status = 1 AND
            closed_index >= TO_DAYS("2012/01/01") AND closed_index <= TO_DAYS("2013/01/01")
      GROUP BY closed_index
     ) tci;

由於四舍五入,我將在單個查詢中對此保持警惕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM