【问题标题】:Sql query to sum up total of columns previously used aggregate functionsql查询汇总以前使用的聚合函数的列总数
【发布时间】:2014-05-29 05:37:50
【问题描述】:

来自这个帖子,enter link description here

我想改进查询

SELECT `BetType`,
   count(`BetType`) AS COUNT,
   sum(`BetAmount`) AS BetAmountTotal,
   sum(`Payout`) AS PayoutTotal
FROM `betdb`
LEFT JOIN `matchdb` ON `betdb`.`MatchID` = `matchdb`.`MatchID`
WHERE `betdb`.`MatchID`=135
GROUP BY `BetType`

感谢 Sadikhasan 对此问题的帮助

我想添加另一行显示列的总数

BetType       Count     BetAmount Total   Payout Total
Handi           2         60000               950000
Homerun Count   4         10000                 0
Total           6         70000               950000

这似乎需要另一个 SELECT 语句,但我将如何放置另一行显式显示“Total”字符串并使用聚合函数获取先前使用的列的总和?

【问题讨论】:

标签: mysql


【解决方案1】:

您可以对GROUP BY 使用WITH ROLLUP 修饰符,这将为您提供另一行总计,但您分组的列(BetType)将为该行显示NULL。但是没有什么能阻止您使用 COALESCE()NULL 替换为 'Total' 字符串。

SELECT COALESCE(`BetType`,'Total') AS BetType,
   COUNT(*) AS `Count`,
   sum(BetAmount) AS BetAmountTotal,
   sum(Payout) AS PayoutTotal
FROM betdb
WHERE betdb.MatchID=135
GROUP BY BetType WITH ROLLUP

【讨论】:

  • 哇好复杂的sql查询!谢谢!我在这里学到了很多东西!非常感谢
猜你喜欢
  • 2020-03-07
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 2015-09-28
  • 2018-09-01
  • 1970-01-01
相关资源
最近更新 更多