我在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
答案 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