Подскажите SQL запрос - group by?

179
15 декабря 2016, 15:51

У меня есть таблица:

source, duration
84991234567, 21
84991234568, 29
84951234569, 22

Где source - это исходящий номер телефона, duration - длительность вызова.

Мне нужно сгруппировать эти данные по коду города, т.е. получить следующее:

8499, 50
8495, 22

где второе число - это сумма duration.

Главный вопрос - как сгруппировать по коду города?

Answer 1

Можно и так:

select left(source,4), sum(duration)
from table
group by left(source,4)
Answer 2

Воспользуйтесь функцией SUBSTRING(), и сделайте запрос с подзапросом. В итоге будет что-то вроде (мог ошибиться, т.к. пишу без проверки):

SELECT
  city_code,
  SUM(duration) 
FROM
  (SELECT
     SUBSTRING(source, 1, 4) city_code, duration
   FROM
     your_table)
GROUP BY
  city_code;
READ ALSO
Реально ли реализовать с помощью одного запроса MySQL?

Реально ли реализовать с помощью одного запроса MySQL?

К крону нужно прикрутить скрипт, реально ли реализовать чисто на мускуле?

163
MySQL: все записи кроме

MySQL: все записи кроме

Как сделать MySQL запрос таким образом, вытащить все кроме одного ,

182
Обработка ошибки PDO в php

Обработка ошибки PDO в php

Так подключаюсь к базе, и хочу проверить соединение

287
MySQL запрос на выборку данных

MySQL запрос на выборку данных

Как вытащить 50 гонщиков из бд с победами от большего к меньшему

170