首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按月份和货币分组为MySQL

问按月份和货币分组为MySQL
EN

Stack Overflow用户
提问于 2014-03-21 13:22:20
回答 2查看 68关注 0票数 0

我的网上商店里有一张桌子,里面有我所有的销售额。看起来是这样的:

代码语言:javascript
复制
saletime            | saleprice  | fee  | currency
2014-01-01 00:51:27 | 89.00      | 6.9  | USD
2014-01-01 01:20:27 | 249.00     | 9.9  | SEK
2014-01-01 02:31:27 | 849.00     | 19.9 | SEK

我需要得到按月和货币分组的总数。

结果应该是这样的:

代码语言:javascript
复制
Month   | Sum(saleprice) | Sum(fee) | Currency
01-2014 | 9829827.00     | 38738.00 | USD
01-2014 | 443827.00      | 738.00   | SEK
01-2014 | 439827.00      | 4738.00  | NOK

02-2014 | 9829827.00     | 38738.00 | USD
02-2014 | 443827.00      | 738.00   | SEK
02-2014 | 439827.00      | 4738.00  | NOK

03-2014 | 9829827.00     | 38738.00 | USD
03-2014 | 443827.00      | 738.00   | SEK
03-2014 | 439827.00      | 4738.00  | NOK

我不太了解高级分组,我尝试了一些类似于

代码语言:javascript
复制
SELECT SUM(saleprice), SUM(fee), currency 
FROM sales
GROUP BY (month(saletime), year(saletime)), currency

但我失败了。如何解决这一问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-21 13:30:12

您需要按月+年进行分组,然后是货币:

代码语言:javascript
复制
SELECT DATE_FORMAT(saletime,"%m-%Y") AS `Month`, SUM(saleprice), SUM(fee), currency
FROM sales
GROUP BY DATE_FORMAT(saletime,"%m-%Y"), currency

如果您想将所有美元货币分组为一组,其余的则分组为另一组:

代码语言:javascript
复制
SELECT DATE_FORMAT(saletime,"%m-%Y") AS `Month`, SUM(saleprice), SUM(fee),
  IF(currency = 'USD', 'USD', 'Other') AS currency
FROM sales
GROUP BY DATE_FORMAT(saletime,"%m-%Y"), currency = 'USD'
票数 3
EN

Stack Overflow用户

发布于 2014-03-21 13:30:38

是你干的,试着:

代码语言:javascript
复制
SELECT sum(saleprice), sum(fee), currency 
FROM sales
GROUP BY DATE_FORMAT( creation_date, '%Y-%m'), currency
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22560013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档