gpt4 book ai didi

php - 计算价格范围内的订单,并按周数分组

转载 作者:行者123 更新时间:2023-11-28 23:19:51 38 4
gpt4 key购买 nike

我必须从 MySQL 数据库中获取一些统计信息,我需要获取订单大小范围内的订单数量,然后我需要从表 created_at in orders 按周分组

我希望这是有道理的。

这是我能够想到的,但我在高级 MySQL 方面的经验很少。

SELECT 
x.Kurv, COALESCE(ordre, 0) AS ordre
FROM (
SELECT "0 - 100" AS Kurv
UNION SELECT "100 - 200"
UNION SELECT "200 - 300"
UNION SELECT "300 - 400"
UNION SELECT "400 - 500"
UNION SELECT "500 - 600"
UNION SELECT "over 600" ) x
LEFT JOIN
(SELECT
CASE when base_total_ex_tax >= 0 and base_total_ex_tax <= 100 then "0 - 100"
when base_total_ex_tax > 100 and base_total_ex_tax <= 200 then "100 - 200"
when base_total_ex_tax > 200 and base_total_ex_tax <= 300 then "200 - 300"
when base_total_ex_tax > 300 and base_total_ex_tax <= 400 then "300 - 400"
when base_total_ex_tax > 400 and base_total_ex_tax <= 500 then "400 - 500"
when base_total_ex_tax > 500 and base_total_ex_tax <= 600 then "500 - 600"
else "over 600"
END AS Kurv,
COUNT(*) as ordre
FROM orders
WHERE
created_at > '2017-01-01 00:00:00'
&&
status_id != 'canceled'
GROUP BY 1)
y ON x.Kurv = y.Kurv

可以很好地输出范围和顺序,我只需要添加周组。

提前致谢。

最佳答案

您可以使用 CONCAT(YEAR(date), '/', WEEK(date)) 查找周。然后你就可以对它进行分组:

SELECT  CONCAT(YEAR(date), '/', WEEK(date)) as wk
, CASE
WHEN amount <= 100 THEN '0 - 100'
WHEN amount <= 200 THEN '100 - 200'
ELSE '> 200'
END as kurve
, COUNT(*)
FROM orderstable
GROUP BY
wk
, kurve

Example at rextester.

如果你想列出所有的曲线和周数,即使是那些没有订单的,你可以添加所有的曲线(就像你已经做的那样)和all weeks到左联接的右侧。这通常更容易在客户端进行。

关于php - 计算价格范围内的订单,并按周数分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42222590/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com