sql - Get the count of multiple tables broken up by hour -


i have 2 tables, queue , tracker counts yesterday. each table has insert_date field indicates when row inserted.

right now, using 2 queries data. query using count tracker

select to_char(trunc(insert_date,'hh'),'yyyy-mm-dd hh24:mi:ss') hour_inserted,        count(*) records_inserted   tracker      insert_date >= trunc(sysdate - 1)         , insert_date <  trunc(sysdate) group         trunc(insert_date,'hh') order         hour_inserted 

i use same query count queue, switch table name.

   select to_char(trunc(insert_date,'hh'),'yyyy-mm-dd hh24:mi:ss') hour_inserted,            count(*) records_inserted       queue          insert_date >= trunc(sysdate - 1)             , insert_date <  trunc(sysdate)     group             trunc(insert_date,'hh')     order             hour_inserted 

i condense down 1 query, instead of having run 2 seperate ones.

what new query like?

ideally, result of query this:

hour_inserted        | queue_records | tracker_records ---------------------------------------------------- 2014-03-12 00:00:00     56                 102 2014-03-12 01:00:00     80                 200 

if want combine output, need union:

select 'tracker' data_type,        to_char(trunc(insert_date, 'hh'), 'yyyy-mm-dd hh24:mi:ss') hour_inserted,        count(*) records_inserted   tracker  insert_date >= trunc(sysdate - 1)    , insert_date < trunc(sysdate)  group trunc(insert_date, 'hh') union select 'queue' data_type,        to_char(trunc(insert_date, 'hh'), 'yyyy-mm-dd hh24:mi:ss') hour_inserted,        count(*) records_inserted   queue  insert_date >= trunc(sysdate - 1)    , insert_date < trunc(sysdate)  group trunc(insert_date, 'hh')  order data_type, hour_inserted 

update: due updated requirements there query:

select coalesce(tracker.hour_inserted, queue.hour_inserted) hour_inserted,        tracker.records_inserted tracker_records_inserted,        queue.records_inserted queue_records_inserted   (select to_char(trunc(insert_date, 'hh'), 'yyyy-mm-dd hh24:mi:ss') hour_inserted,                count(*) records_inserted           tracker          insert_date >= trunc(sysdate - 1)            , insert_date < trunc(sysdate)          group trunc(insert_date, 'hh')) tracker   full outer join (select to_char(trunc(insert_date, 'hh'),                                   'yyyy-mm-dd hh24:mi:ss') hour_inserted,                           count(*) records_inserted                      queue                     insert_date >= trunc(sysdate - 1)                       , insert_date < trunc(sysdate)                     group trunc(insert_date, 'hh')) queue on tracker.hour_inserted =                                                                 queue.hour_inserted  order 1; 

link sqlfiddle.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

android - Keyboard hides my half of edit-text and button below it even in scroll view -

css - Make div keyboard-scrollable in jQuery Mobile? -