从连接MySQL中其他表的两个不同列中获取平均值

从连接MySQL中其他表的两个不同列中获取平均值,mysql,Mysql,我在mySQL中有下表和示例数据: 表1: 表2: 我很难从这两列中得到数量的平均值,即类型和位置。是否有可能只计算过去3个月的平均值 以下是我想要实现的结果: type CA_AVE NY_AVE ----------------------------- car1 1.5 2.5 car2 2 <-- assumed the current month is MARCH so the qty for MAY should

我在mySQL中有下表和示例数据:

表1

表2

我很难从这两列中得到数量的平均值,即类型和位置。是否有可能只计算过去3个月的平均值

以下是我想要实现的结果:

type      CA_AVE      NY_AVE
-----------------------------
car1        1.5         2.5
car2        2  <-- assumed the current month is MARCH so the qty for MAY should 
                   not be included to get the average
类型CA_AVE NY_AVE
-----------------------------
car1.52.5
这是你的答案。
但是你应该考虑到现在的月份是八月,而不是我现在使用的三月b/c()。
好吧。因此,相应地更改表数据并检查结果

select AVG( loc) as loc,AVG(qty) as qty from tbl1  where month NOT IN (concat(UCASE(DATE_FORMAT(date_add(now(), INTERVAL -1 MONTH),'%b')),',',
         UCASE(DATE_FORMAT(date_add(now(), INTERVAL -2 MONTH),'%b')),',',
         UCASE(DATE_FORMAT(date_add(now(), INTERVAL -3 MONTH),'%b')))) group by type

对于演示,请单击此处:-

我认为最好是生成行而不是列(如果您有200个位置,而不仅仅是2个位置怎么办?)。这重要吗?此外,不清楚什么是“最后3个月”。您没有
APR
值。那么,四月份会是零吗?或者是五月
三月
二月
?考虑到要添加的位置数量,我把它看作是行。在过去的3个月里,我以5月、3月、1月的格式更改了表格,并得到了结果。谢谢
type      CA_AVE      NY_AVE
-----------------------------
car1        1.5         2.5
car2        2  <-- assumed the current month is MARCH so the qty for MAY should 
                   not be included to get the average
select AVG( loc) as loc,AVG(qty) as qty from tbl1  where month NOT IN (concat(UCASE(DATE_FORMAT(date_add(now(), INTERVAL -1 MONTH),'%b')),',',
         UCASE(DATE_FORMAT(date_add(now(), INTERVAL -2 MONTH),'%b')),',',
         UCASE(DATE_FORMAT(date_add(now(), INTERVAL -3 MONTH),'%b')))) group by type