Помогите составить запрос на mysql[решено]
Есть таблица структура её такая
day,kbytes,direc Собственно день, количество килобайт и направления трафика (входящий,исходящий).
если составить запрос
mysql> select day,sum(kbytes),direct from table group by day,direct;
+------+------------------+--------+
| day | sum(kbytes) | direct |
+------+------------------+--------+
| 11 | 155679.506835938 | in |
| 11 | 20869.40234375 | out |
| 12 | 5.615234375 | in |
| 12 | 2.24609375 | out |
| 13 | 5.615234375 | in |
| 13 | 2.24609375 | out |
| 14 | 806327.846679688 | in |
| 14 | 116841.361328125 | out |
| 15 | 263747.9375 | in |
| 15 | 242652.407226562 | out |
| 16 | 148279.2734375 | in |
| 16 | 282049.681640625 | out |
| 17 | 466593.607421875 | in |
| 17 | 35943.7783203125 | out |
| 18 | 244199.162109375 | in |
| 18 | 223871.408203125 | out |
| 19 | 5.615234375 | in |
| 19 | 2.24609375 | out |
| 20 | 3.173828125 | in |
| 20 | 1.26953125 | out |
Как можно составить запрос так что бы день был один, а трафик по направлениям делился на 2 колонки
пример
day sum(kbytes) in sum(kbytes) out
20 3.1738 1.269
Заранее спасибо
- Для комментирования войдите или зарегистрируйтесь
Quote:запрос так
Используй WHERE
Примерно вот так:
Работать будет на новых версиях mysql, на пятой точно. В старых нету вложенных селектов. С синтаксисом мог напутать. Возможно есть более простой способ.
Спасибо огромное. После join доковырял доке
Получилось так
select * from (select day,sum(kbytes) AS kbytes_in from table where direct='in' group by day)AS t1 left join (select day,sum(kbytes) AS kbytes_out from table where direct='out' group by day) AS t2 using (day);
+------+------------------+------------------+
| day | kbytes_in | kbytes_out |
+------+------------------+------------------+
| 11 | 155679.506835938 | 20869.40234375 |
| 12 | 5.615234375 | 2.24609375 |
| 13 | 5.615234375 | 2.24609375 |
| 14 | 806327.846679688 | 116841.361328125 |
| 15 | 263747.9375 | 242652.407226562 |
| 16 | 148279.2734375 | 282049.681640625 |
| 17 | 466593.607421875 | 35943.7783203125 |
| 18 | 244199.162109375 | 223871.408203125 |
| 19 | 5.615234375 | 2.24609375 |
| 20 | 3.173828125 | 1.26953125 |
+------+------------------+------------------+
Как по маслу. И выполняется быстро.
Может кто в курсе более шустрого запроса.