gpt4 book ai didi

mysql - 根据时间跨度查询创建新字段

转载 作者:行者123 更新时间:2023-11-29 22:16:11 24 4
gpt4 key购买 nike

我无法编写需要以下内容的查询:

我有 4 张游戏产品表:

表 1(足球)

产品名称

足球

足球鞋

足球小腿

表2(板球)

产品名称

板球

板球树桩

板球棒

表3(橄榄球)

产品名称

橄榄球

表4(乒乓球)

产品名称

乒乓球

我还有一个表格,生成所有产品的收入,如下所示:

表5

用户 ID OrderSno 产品名称 OrderTime 收入

123 66243 板球 12Jan2012 35

123 66553 板球棒 15June2013 60

123 36476 足球 15Dec2013 15

结果表应该是这样的:

订购时间(已排序)板球(3个月)板球(6个月)板球(终身)

2012年1月12日 0 0 0

2013年6月15日 0 0 35

2013年12月15日 0 60 95 (60+35)

足球(3个月)足球(6个月)足球(终身)

      0                     0                 0

0 0 0

0 0 0

上表给出了购买该特定产品之前购买的每种产品所产生的收入。这是基于订单日期/时间排序的。例如:用户 123 于 2012 年 1 月 12 日下了第一笔订单。因此,该用户在此之前没有购买过任何东西,因为这是他的第一笔订单。因此结果表的第一行应该是0。来到第二排,他的第二次购买是在2013年6月15日。因此,结果表应包含第二个订单之前相应产品类型的所有收入。因此,在这种情况下,35 将出现在 Cricket 字段下(因为 Product_name 属于 Cricket 表),并且它将落入 Lifetime 字段。这是因为订单购买日期是 2013 年 6 月 15 日。所以在此之前的 3 个月里,我什么也没买。同样,在此日期之前的 6 个月内也没有购买任何东西。但在购买板球一年或更长时间之前,产生的收入为 35。因此,根据板球的 Product_Name,35 的值应属于板球的 Lifetime 字段。

所有产品都应该发生同样的事情。我知道查询很复杂,我不确定这是否可行。由于我对这方面的任何帮助都是新手,我们将不胜感激。

最佳答案

嗯,我不确定这是否正是您想要的,但我认为它的工作值得一看。如果你想把所有的运动都集中在一张 table 上,联盟就可以做到。

Select Product_Name
,YEAR(ordertime)
,SUM(case when MONTH(ordertime) in (1,2,3) then revenue else 0 end) 'Q1'
,SUM(case when MONTH(ordertime) between 1 and 6 then revenue else 0 end) 'Q2'
,SUM(case when MONTH(ordertime) between 1 and 9 then revenue else 0 end) 'Q3'
,SUM(revenue) 'Q4'
from PingPong
group by Product_Name, YEAR(ordertime)

关于mysql - 根据时间跨度查询创建新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31194774/

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