0

我有一个交易所清单,有汇率和日期,每天都会更新,

示例->

usd - 135 - 26/02/2013
Yen - 230 - 26/02/2013
GBP - 200 - 26/02/2013

usd - 136 - 25/02/2013
Yen - 230 - 25/02/2013
GBP - 205 - 25/02/2013

我有一个查询将它们组合起来,查询是这样的->

SELECT Curr, Src, GROUP_CONCAT(Rate, '|', Feeddate 
ORDER BY feeddate ASC SEPARATOR ',' ) AS RateCal 
FROM rates 

所以看起来像这样->

usd - 135 | 26/02/2013, 136 | 25/02/2013
Yen - 230 | 26/02/2013, 230 | 25/02/2013
GBP - 200 | 26/02/2013, 206 | 25/02/2013

但我也有一个查询来获取每个月每个交易所的平均值,这就是 ->

SELECT  Curr, DATE_FORMAT(Feeddate,'%Y-%M') AS 'Year', AVG(`Rate`) as 'Rate'
FROM rates,

但我现在想要的是像上面一样拥有每个交换组 concat 的月平均值

4

1 回答 1

0

会不会是你要找的这个?使用您的样本数据并为March.

SQL 演示

select curr, monthname(date), avg(rate)
from rates
group by curr, monthname(Date);

| CURR | MONTHNAME(DATE) | AVG(RATE) |
--------------------------------------
|  GBP |        February |     202.5 |
|  GBP |           March |       207 |
|  usd |        February |     135.5 |
|  usd |           March |       136 |
|  Yen |        February |       230 |
|  Yen |           March |     232.5 |

这看起来太简单了,不可能是真的。所以请发表评论。

根据 OP 的评论:

SQL 演示 2

select x.curr, 
GROUP_CONCAT(x.avgr, '|', x.mondate) as Months_Averages
from (select curr, monthname(date) mondate,
avg(rate) avgr
from rates
group by curr, monthname(date)
)x
group by x.curr;

| CURR |                      MONTHS_AVERAGES  |
------------------------------------------------
|  GBP |    202.5000| February,207.0000| March |
|  usd |    135.5000| February,136.0000| March |
|  Yen |    230.0000| February,232.5000| March |
于 2013-02-27T13:49:00.150 回答