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

时间:2013-09-10 11:55:06

标签: mysql

我在mySQL中有以下表格,其中包含示例数据:

  

表1

id    type    locid    month    qty
1     car1      1      JAN       2
2     car1      1      FEB       1
3     car1      2      JAN       3
4     car1      2      MAR       2
5     car2      1      FEB       2
6     car2      1      MAY       5
  

表2

id    location
1        CA
2        NY

我很难从这两个不同的列中获取数量的平均值,即类型和位置。是否可以仅计算过去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

1 个答案:

答案 0 :(得分:0)

这是你的答案。 但你应该考虑现在月份是不是行军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

对于DEMO点击此处: - http://sqlfiddle.com/#!2/2a15e/15