Как получать данные из базы данных Oracle в почасовом режиме - PullRequest
3 голосов
/ 07 октября 2010

У меня есть одна таблица в моей базе данных, скажем, mytable, запрос содержимого которой поступает из другого источника. В этой таблице есть один столбец «Время», в котором хранятся дата и время (например, 2010/07/10 01:21:43), когда был получен запрос. Теперь я хочу получать данные из этой таблицы на почасовой основе за каждый день. Значит, я хочу, чтобы количество запросов к базе данных получалось в каждый час дня. например, от 1 до 2 часов, скажем, 50. Вот так .. Я выполню этот запрос в конце дня. Таким образом, я получу запросы, полученные в дневной группе каждый час.

Может ли кто-нибудь помочь мне в этом.

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

Любой другой способ, кроме ответа OMG Ponies.

Ответы [ 3 ]

8 голосов
/ 07 октября 2010

Используйте функцию TO_CHAR для форматирования столбца DATETIME, чтобы вы могли использовать GROUP BY для агрегатных функций:

  SELECT TO_CHAR(t.time, 'YYYY-MM-DD HH24') AS hourly,
         COUNT(*) AS numPerHour
    FROM YOUR_TABLE t
GROUP BY TO_CHAR(t.time, 'YYYY-MM-DD HH24')
2 голосов
/ 07 октября 2010

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

create table ohtertable_count (no_of_rows number, time_of_count date);

Ваша работа с базой данных, которая будет выполняться ежечасно, будет выглядеть примерно так:

<code>insert into othertable_count 
select count(1), sysdate
from othertable;
И вы будете запрашивать таблицу othertable_count вместо запроса исходной таблицы.
0 голосов
/ 14 декабря 2018
SELECT To_char(your_column, 'YYYY-MM-DD HH24') AS hourly, 
       Count(*)                              AS numPerHour 
FROM   your_table 
WHERE  your_column > '1-DEC-18' 
       AND your_column < '4-DEC-18' 
GROUP  BY To_char(your_column, 'YYYY-MM-DD HH24') 
ORDER  BY hourly;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...