Несколько полезных SQL запросов

Технические вопросы по UTM 5.0
Закрыто
misha_40hex
Сообщения: 7
Зарегистрирован: Вт июл 08, 2014 16:53

Сообщение misha_40hex »

Большое спасибо, помогло.

То есть id в service_links и periodic_service_links равны, получается.

Интересно, есть где-нибудь документация на структуру БД ?

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

misha_40hex писал(а):Большое спасибо, помогло.

То есть id в service_links и periodic_service_links равны, получается.

Интересно, есть где-нибудь документация на структуру БД ?
Да, service_links - это все связки в системе, которые потом в таблицах periodic_service_links, once_service_links, tel_service_links, итд развертываются в соответствии со своими специфическими параметрами.

Аватара пользователя
ZeM
Сообщения: 371
Зарегистрирован: Чт фев 17, 2011 08:38

Сообщение ZeM »

Выводим DHCP аренду
SELECT id,inet_ntoa(0xffffffff & ip),mac,server_id,client_id,from_unixtime(expired,'%Y-%m-%d'), from_unixtime(updated,'%Y-%m-%d'), binding_id,flags FROM dhcp_leases;

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Всем привет. Подскажите, можно ли как то запросом к базе, выяснить дату следующего списания и сумму списания по тарифу и услугам?

тарифы с абон платой и списанием раз (или несколько раз) в сутки или раз в месяц.

Нашел запрос который показывает дату списания (конец раст.периода) и сумму по тарифу (полную). А если денег не хватает по среди расчетного периода?

kara
Сообщения: 125
Зарегистрирован: Вс мар 21, 2010 21:02

Сообщение kara »

Ребят, а есть идеи как вытащить ARPU за определенный период(февраль 2015) к примеру?

Если выручку выбрать просто, то среднемесячное количество пользователей активных в тот период задним числом не понятно как считать...

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

наверное надо выбрать сколько оплатили, и посчитать сколько уникальных аккаунтов это сделало :)

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

kara писал(а):Ребят, а есть идеи как вытащить ARPU за определенный период(февраль 2015) к примеру?

Если выручку выбрать просто, то среднемесячное количество пользователей активных в тот период задним числом не понятно как считать...
По идее надо просуммировать платежи от пользователей, и разделить их на количество пользователей которые имели какие либо списания по периодическим услугам входящие в тарифные планы в конкретном месяце.

kara
Сообщения: 125
Зарегистрирован: Вс мар 21, 2010 21:02

Сообщение kara »

Ну в теории все так, а на практике вопрос в том как найти тех юзеров, у кого была активность в данном месяце.

Я решил воспользоваться данными из discount_transactions_all и получился такой запрос:

Код: Выделить всё

 SELECT ua.uid
  FROM UTM5.users_accounts ua, UTM5.discount_transactions_all dta
  WHERE ua.account_id=dta.account_id
  AND dta.discount_date >= 1422730800 
  AND dta.discount_date <= 1425150000
  GROUP BY ua.uid;
Работает дико долго, минут пять...
Если переделать на джойн, то еще дольше...

kara
Сообщения: 125
Зарегистрирован: Вс мар 21, 2010 21:02

Сообщение kara »

Cramac писал(а):наверное надо выбрать сколько оплатили, и посчитать сколько уникальных аккаунтов это сделало :)
Это уже ARPPU :)

Godzilla
Сообщения: 7
Зарегистрирован: Ср дек 16, 2015 13:26

Запрос на подсчёт суммы по тарифным планам

Сообщение Godzilla »

Добрый день Может кто подсказать запрос на подсчёт суммы по тарифным планам пользователей (скажем, существует 5 тарифных планов, и 1000 пользователей, у каждого из которых определённый тарифный план определённой месячной стоимости, необходимо подсчитать сколько через месяц эти абоненты будут должны денег). Или хотя бы подскажите в какой таблице и как формируется общая стоимость тарифного плана, ибо в таблице periodic_services_data, кажется, не то совсем, что мне нужно

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

нужно
SELECT * FROM tariffs where is_deleted=0
и
SELECT id,account_id FROM account_tariff_link where tariff_id=".$id." and is_deleted=0

первое берет данные по тарифу, второй аккаунты и его тариф.

Godzilla
Сообщения: 7
Зарегистрирован: Ср дек 16, 2015 13:26

Сообщение Godzilla »

Cramac писал(а):нужно
SELECT * FROM tariffs where is_deleted=0
и
SELECT id,account_id FROM account_tariff_link where tariff_id=".$id." and is_deleted=0

первое берет данные по тарифу, второй аккаунты и его тариф.
я получу названия тарифов, окей, а как мне получить стоимость тарифного плана?

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

посмотрите в таблицу
periodic_services_data

Godzilla
Сообщения: 7
Зарегистрирован: Ср дек 16, 2015 13:26

Сообщение Godzilla »

Cramac писал(а):посмотрите в таблицу
periodic_services_data
я туда первым делом и смотрел, но стоимость там выглядит несколько странно, для меня. Ибо, скажем, на сегодняшний день стоимость тарифа 75000 есть, захожу в ту таблицу, надеюсь увидеть там 75000 в одной из строк - но нет, там какие-то странные значения вроде 10000, 25000 и тд, то есть соответствия нет текущей стоимости тарифных планов. Поэтому предположил, что она считается по какой-то формуле на основе нескольких значений из таблиц, что ли. Буду очень благодарен если проясните этот вопрос и мне :)

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

не знаю Вашу версию УТМ, но посмотрел у себя, так как положено.

Дальше подсказать не могу, посмотрел как сам считаю, у меня завязано с своей веб мордой и от туда берется цена.

Закрыто