я работал в телекоммуникационной компании несколько лет назад, и я должен был сформировать формулу, которая вычисляет продолжительность вызова по следующему алгоритму:Математическая формула для расчета длительности вызова
- t1 является первый период
- t2 является повторяющимся периодом
- RCT является фактическим время вызова (в секундах)
- диска является эффективной продолжительностью вызова (для выставления счетов)
, если RCT меньше t1, тогда CD равен t1
, если RCT больше t1, тогда CD = t1 + x * t2, где x будет «круглым» RCT до следующего максимального кратного t2.
Этот алгоритм переводится как: «Заряжайте в течение первых t1 секунд, затем заряжайте каждые t2 секунды после этого».
Пример:
t1 t2 RCT CD
60 10 48 60
60 10 65 70
60 10 121 130
30 20 25 30
30 20 35 50
30 20 65 70
Вы можете создать функцию/SQL, который будет возвращать "продолжительность вызова" CD?
Без использования, если тогда еще ...?
Это не должно быть 'потолок ((RCT -t1)/t2) 'вместо' (floor ((rct-t1)/t2) +1) '? В противном случае 60-10-70 создаст компакт-диск из 80. –
Вставка в значения вызовов (60, 10, 70, 70) Вставка в значения звонков (60, 10, 80, 80) Это не работает –
Эти вставки предполагают синтаксис, который может подразумевать формат таблицы. Добавьте (t1, t2, rct, cd), если необходимо. – Godeke