Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2014, 13:08   #1
GorSHOK1
 
Регистрация: 09.12.2013
Сообщений: 7
По умолчанию SQL запрос, среднее время обработки данных

Нужно написать sql-запрос, который выводит среднее время обработки успешных операции резервирования средств, за месяц, для транзакций, в которой есть как минимум 2 попытки такой операции.
GorSHOK1 вне форума Ответить с цитированием
Старый 31.01.2014, 13:11   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

если действительно нужно, то так и быть, пишите, думаю возражать не будут
eval вне форума Ответить с цитированием
Старый 31.01.2014, 13:12   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,050
По умолчанию

Для этого должны быть поля начала и конца операции. Вот за месяц просуммировать разницу в секундах и разделить на количество операций
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.01.2014, 13:35   #4
GorSHOK1
 
Регистрация: 09.12.2013
Сообщений: 7
По умолчанию

Вот так таблица выглядит, и как это провернуть
Изображения
Тип файла: jpg Снимок.jpg (24.3 Кб, 155 просмотров)
GorSHOK1 вне форума Ответить с цитированием
Старый 31.01.2014, 15:03   #5
GorSHOK1
 
Регистрация: 09.12.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Для этого должны быть поля начала и конца операции. Вот за месяц просуммировать разницу в секундах и разделить на количество операций
Вот конкретно для моей таблицы, у меня такой селект, за месяц.
Выдаются данные, которые я приложил на скриншоте.
Я еще в SQL слабо понимаю, поэтому вопрос такой, как мне вывести совпадающие строки в столбце transaction_history_id? я Гуглил, но не могу применить для своего селекта и таблицы, тк, слабоват пока, а литературы пока не нашел хорошей. Результат приложил в скрине, а вот сам запрос:

Код HTML:
select *  
       FROM transaction_history th
            

             where th.history_time > to_date ('31-12-2013 00:00:00', 'dd-mm-yyyy hh24:mi:ss') 
             and th.history_time <to_date('07-01-2014 23:59:00', 'dd-mm-yyyy hh24:mi:ss')
Изображения
Тип файла: jpg Снимок.jpg (48.4 Кб, 125 просмотров)
GorSHOK1 вне форума Ответить с цитированием
Старый 31.01.2014, 15:52   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,050
По умолчанию

Для каждой записи со стате = RESERVED за месяц найти следующую записиь со стате = RESERVE_PENDING этого же месяца с таким же ИД, взять разницу во времени и найти среднее по периоду. Так? И СУБД какая? Вечерком может чего и отвечу

ADD

Судя по to_date это oracle. Не мой профиль. Чисто теоретически могу предложить такой вариант
Код:
SELECT AVG((v.TimeEnd-v.TimeBeg)*24*60*60)
  FROM (SELECT t1.history_time AS TimeBeg,
           (SELECT u.history_time
              FROM (SELECT t2.history_time
                      FROM transaction_history t2
                      WHERE t2.transaction_id=t1.transaction_id AND
                            t2.transaction_state='RESERVE_PENDIND' AND
                            t2.history_time>t1.history_time AND
                            t2.history_time<to_date('01-01-2014','dd-mm-yyyy')
                      ORDER BY t2.history_time) u
              WHERE rownum=1) AS TimeEnd
         FROM transaction_history t1
         WHERE t1.transaction_state='RESERVED' AND
               t1.history_time>=to_date('01-12-2013','dd-mm-yyyy') AND
               t1.history_time<to_date('01-01-2014','dd-mm-yyyy')) v
  WHERE v.TimeEnd IS NOT NULL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 31.01.2014 в 20:23.
Аватар вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно определить, какое из данных 3 чисел среднее по значению. Среднее арифметическое считать НЕ надо vgfcb Помощь студентам 3 03.12.2013 20:24
SQL запрос на дополнение данных SERG1980 БД в Delphi 2 02.06.2011 08:59
Составить программу для обработки данных во время ввода. Васильева Зинаида Помощь студентам 9 01.11.2010 21:36
sql-запрос на выборку данных kity Помощь студентам 3 07.06.2010 17:18
SQL запрос и редактирование данных Dux БД в Delphi 7 01.09.2008 12:17