这似乎是一个相当简单的问题,但是在按月份对销售计数进行分组后,我无法弄清楚如何将月份的数值更改为月份的实际名称。
基本上我想列出每个月的总销售额。目前这就是我所拥有的:
SELECT MONTH(SaleDate) as "Month", Count(*) as "TotalSales"
FROM Sale
GROUP BY MONTH(SaleDate);
这非常适合我想做的事情。并给出了这个结果:
+---------------------------------+
| Month | TotalSales |
+---------------------------------+
| 1 | 123 |
| 2 | 142 |
| 3 | 183 |
| 4 | 99 |
| 5 | 127 |
| 6 | 202 |
+---------------------------------+
etc....
但是我希望列表的月份为一月,二月......等。
我已经尝试过使用 MONTHNAME()、MONTHNAME(STR_TO_DATE) 和许多其他方法的多种方法,但是将月份分组似乎会导致问题。
我觉得我错过了一个非常简单的解决方案,但无法在网上找到任何解决方案。作为参考,销售表中的日期为默认日期(2017-01-01 或 YYYY-MM-DD)。并且sale 表具有三个属性:SaleID、StoreID 和SaleDate。
+---------------------------------+
| Month | TotalSales |
+---------------------------------+
| January | 123 |
| February | 142 |
| March | 183 |
| April | 99 |
| May | 127 |
| June | 202 |
+---------------------------------+
and so on...
这是我从尝试过的方法中收到的错误消息:
错误代码:1055。SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“UsedCarDealer.Sale.SaleDate”;这与 sql_mode=only_full_group_by 不兼容
谢谢!