Квантование времени в Oracle/SQL

Создать интерфейс обратного вызова и реализовать его в классе OneFragment и вызвать метод обратного вызова из onclick слушателя BackFragment

5
задан Ryan Bright 18 December 2008 в 22:30
поделиться

3 ответа

С точки зрения вывода данных можно использовать 'группу' и 'усечь' для разрезания данных в интервалы 1 минуты. например:

SELECT user_name, truncate(event_time, 'YYYYMMDD HH24MI'), count(*)
FROM job_table
WHERE event_time > TO_DATE( some start date time)
AND user_name IN ( list of users to query )
GROUP BY user_name, truncate(event_time, 'YYYYMMDD HH24MI') 

Это даст, Вы заканчиваетесь как ниже (предполагающий, что существует 20 строк для alice между 8,00 и 8,01 и 40 строками между 8,01 и 8.02):

Alice  2008-12-16 08:00   20
Alice  2008-12-16 08:01   40
5
ответ дан 14 December 2019 в 19:28
поделиться

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

0
ответ дан 14 December 2019 в 19:28
поделиться

Это должно сделать это довольно хорошо. Это будет разбивка к минуте (1/1440 дня).

SELECT 
  to_char(Times.time,'hh24:mi'),
  count(*)   
FROM   
  (SELECT
     time
   FROM  
     dual
   WHERE 
     1=2 
   MODEL 
     dimension by ( 0 as key )
     measures     ( sysdate -1 as time )
     rules upsert ( time[ for key from 0 to 1 increment (1/1440) ] = sysdate-1 + cv(key)) ) Times,
  job_table
WHERE 
  begintime <= Times.time 
AND 
  endtime > Times.time 
AND
  user_name = 'Alice'
GROUP BY 
  Times.time 
ORDER BY
  Times.time

Я уверен, что существует более быстрый способ сделать это, но это является лучшим, я могу придумать.Надеюсь, это поможет.

0
ответ дан 14 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: