Mysql 如何同时使用WHERE-BETWEEN和GROUP-BY
如何在同一查询中使用where-between和group-byMysql 如何同时使用WHERE-BETWEEN和GROUP-BY,mysql,sql,aggregate,Mysql,Sql,Aggregate,如何在同一查询中使用where-between和group-by SELECT `sales-store-id`, (SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`)) AS `totalGenericSales` , (SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-retu
SELECT `sales-store-id`,
(SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`))
AS `totalGenericSales` ,
(SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`) + SUM(`others-sales-
after-returns`))
AS `totalEthicalSales`
FROM `sales` GROUP BY `sales-store-id`
WHERE `date-s` BETWEEN '2018-09-01' AND '2018-10-01'
这是一个SQL错误,所以我尝试了替换WHERE,但这也没有正确地对结果进行分组,它只给出了两个具有相同id的结果
SELECT `sales-store-id`,
(SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`))
AS `totalGenericSales` ,
(SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`) + SUM(`others-sales-
after-returns`))
AS `totalEthicalSales`
FROM `sales` GROUP BY `sales-store-id`
AND `date-s` BETWEEN '2018-09-01' AND '2018-10-01'
这里缺少什么?在SQL语句中,WHERE子句应该出现在GROUP BY子句之前
SQL语言定义的子句顺序为:
选择
从…起
参加
哪里
分组
有
订购人
限制MySQL扩展
我们不能在GROUPBY之后使用where子句。
使用此查询
SELECT `sales-store-id`,
(SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`))
AS `totalGenericSales` ,
(SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`) + SUM(`others-sales-
after-returns`))
AS `totalEthicalSales`
FROM `sales`
其中日期-s介于“2018-09-01”和“2018-10-01”之间
按销售商店id分组这些关键字的书写顺序如下: 选择、来自、加入、位置、分组依据、拥有、订购依据
GROUP BY应该是最后一个。GROUP BY应该始终位于条件之后SELECT->from->Join->Where->GROUP BY->Having->Order->LIMIT我们在这里提供示例数据和预期结果。为什么?工作地点和地点不同。。基于不存在的示例数据或预期结果,您无法确定topicstarter是否需要WHERE筛选器或具有..的GROUP BY筛选器,通常不需要。这是SQL语言定义的顺序。@GordonLinoff谢谢-我已经更正了答案中的术语。
SELECT `sales-store-id`,
(SUM (`gen-acute-sales-after-returns`) + SUM(`gen- chronic-sales-after-returns`))
AS `totalGenericSales` ,
(SUM (`eth-acute-sales- after-returns`) + SUM(`eth-chronic-sales-after-returns`)
+ SUM(`others-sales-after-returns`))
AS `totalEthicalSales`
FROM `sales`
WHERE `date-s` BETWEEN '2018-09-01' AND '2018-10-01'
GROUP BY `sales-store-id`;