0

我在 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
4

1 回答 1

0

这是你的答案。但是您现在应该考虑现在月份是八月而不是现在使用的三月 b/ci()。好吧。所以相应地更改您的表格数据并检查结果。

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

演示点击这里:- http://sqlfiddle.com/#!2/2a15e/15

于 2013-09-10T12:53:20.090 回答