- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这似乎是一个相当简单的问题,但我不知道如何在销售计数按月份分组后将月份的数值更改为月份的实际名称。
基本上我想列出每个月的销售总额。目前,这就是我所拥有的:
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表有3个属性:SaleID、StoreID、SaleDate。
+---------------------------------+
| Month | TotalSales |
+---------------------------------+
| January | 123 |
| February | 142 |
| March | 183 |
| April | 99 |
| May | 127 |
| June | 202 |
+---------------------------------+
and so on...
这是我从我尝试过的方法中收到的错误消息:
Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'UsedCarDealer.Sale.SaleDate' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
谢谢!
最佳答案
我建议:
SELECT MONTHNAME(SaleDate) as "Month", Count(*) as "TotalSales"
FROM Sale
GROUP BY MONTH(SaleDate), MONTHNAME(SaleDate)
ORDER BY MONTH(SaleDate);
这还将按时间顺序返回值。注意:使用月份时,将年份作为过滤器或包含在 GROUP BY
中通常是有意义的。也许更好的查询版本是:
SELECT YEAR(SaleDate) as Year, MONTHNAME(SaleDate) as "Month", Count(*) as "TotalSales"
FROM Sale
GROUP BY YEAR(SaleDate), MONTH(SaleDate)
ORDER BY MIN(SaleDate);
关于MySQL = 按月份对销售计数进行分组,然后将月份显示为名称(一月、二月...十二月)而不是数值(1,2,3-12),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58416989/
我正在遵循本指南 Get the First Weekday of the Month with moment.js 获取第一个月(一月)的第一个工作日效果很好 但是,当我尝试使用相反的方法时。我得到
我面临着非常奇怪的问题..下面是生成一个新的 Date 对象的代码: Date result = DateUtils.setYears(new Date(), year); result = Date
这似乎是一个相当简单的问题,但我不知道如何在销售计数按月份分组后将月份的数值更改为月份的实际名称。 基本上我想列出每个月的销售总额。目前,这就是我所拥有的: SELECT MONTH(SaleDate
我是一名优秀的程序员,十分优秀!