发货问题:SQL语法

  • 本文关键字:SQL 语法 问题 mysql
  • 更新时间 :
  • 英文 :


我不确定为什么会出现错误。这是代码

select extract(month from SDate) as simp, sum(quantity) as simp2
from shipment
where month(sdate) between ('01' and '04')
group by simp
order by simp2

简单的操作顺序错误。Group by不知道别名列,因为引擎在select和别名之前处理Group by。因此,必须按公式分组,而不是按分组中的别名分组。排序依据发生在选择完成之后;因此,别名现在可供订单使用。

请记住,SQL不是自上而下执行的。。。更多的是由内而外,我不会进入完整的顺序,但FROM、WHERE、GROUP BY、HAVING、SELECT。。。是这里适用的前几个。更多操作订单

select extract(month from SDate) as simp, sum(quantity) as simp2
from shipment
where month(sdate) between 1 and 4
group by extract(month from SDate)
order by simp2

另一件需要考虑的事情是,month返回一个数字值,因此您不需要"01"one_answers"04":这只会导致更多的隐式转换,从而降低速度。只需使用between 1 and 4

我找到了答案。这个问题与between语句的语法有关。"选择extract(从SDate开始的月份(作为simp,sum(quantity(作为simp2从装运其中"01"one_answers"04"之间的月份(星期四(按simp分组通过simp2 DESC排序;''

相关内容

最新更新