Before
| collected_at | currency | price |
+---------------------+----------+---------+
| 2017-10-03 03:48:00 | BTC | 4800000 |
| 2017-10-03 03:48:00 | ETH | 300000 |
| 2017-10-03 03:48:30 | BTC | 4850000 |
| 2017-10-03 03:48:30 | ETH | 310000 |
| 2017-10-03 03:49:00 | BTC | 4800000 |
| 2017-10-03 03:49:00 | ETH | 320000 |
| 2017-10-03 03:49:30 | BTC | 4850000 |
| 2017-10-03 03:49:30 | ETH | 310000 |
| 2017-10-03 03:50:00 | BTC | 4800000 |
| 2017-10-03 03:50:00 | ETH | 300000 |
| 2017-10-03 03:50:30 | BTC | 4810000 |
| 2017-10-03 03:50:30 | ETH | 310000 |
After
| collected_at | currency | price(avg) |
+------------------+----------+------------+
| 2017-10-03 03:48 | BTC | 4825000 |
| 2017-10-03 03:48 | ETH | 305000 |
| 2017-10-03 03:49 | BTC | 4825000 |
| 2017-10-03 03:49 | ETH | 315000 |
| 2017-10-03 03:50 | BTC | 4805000 |
| 2017-10-03 03:50 | ETH | 305000 |
I want to aggregate prices on same minute unit to one average price for each currency like above by only one sql statement. for example,
| 2017-10-03 03:48:00 | BTC | 4800000 |
| 2017-10-03 03:48:30 | BTC | 4850000 |
These two rows above should be aggregate into one average price 4825000 like below.
| 2017-10-03 03:48 | BTC | 4825000 |
I want to do this work only by one sql statement.
For additional information, collected_at
column has timestamp
data type.
And, I am using mysql
database.