ORACLE怎么用SQL查询多张表和多个时间点的数据的行数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE怎么用SQL查询多张表和多个时间点的数据的行数?相关的知识,希望对你有一定的参考价值。

小弟用下面的SQL可以实现查多个表的行数,但如何实现加上多个时间点的行数,请大侠补充,小弟不胜感激。
select a.first_result, count(1) check_1 from c_tpa_r_bsc_sum a where a.first_result=trunc(sysdate,'hh24')-3/24 group by a.first_result
union all
select b.first_result, count(2) from c_tpa_r_site_sum b where b.first_result=trunc(sysdate,'hh24')-3/24 group by b.first_result
union all
select c.first_result, count(3) from c_tpa_r_bts_sum c where c.first_result=trunc(sysdate,'hh24')-3/24 group by c.first_result

这个SQL查出来的是当天12点这三张表数据的行数,而我要至少监控24小时内这三张表的行数。
小弟的想法是在右边再加几列check_2,check_3...多监控几个时间点的数据的行数,但SQL或视图该如何写呢,请大侠明示。小弟真的没悬赏分了,还请大侠不要介意。
就是我们这边要监控十几张表每小时的数据,截图是其中三张表在12点的时候一共用多少条数据,我想写一个SQL,可以监控多张表多个时间点的一共有多少条数据入库,所以想在右边多加几列,比如check_1是当天12点数据记录,check_2要监控11点的,依次类推。望高手指教

参考技术A 你要加的check_2,check_3...是不同时间点check,和check1是一类的,所以不应该往右加列啊,直接往下加行就行了。
而且建议:2列是不能完全标识出区别的,应该加一列,比如select ‘第一张表’,a.first_result, count(1) check_1 from c_tpa_r_bsc_sum a where a.first_result=trunc(sysdate,'hh24')-3/24 group by a.first_result
union ...

当然,你可以加完了后做行转列追问

直接用union加行的话看着很不方便啊,一共十几张表,大概需要监控24个小时的数据,加列的话看着更直观一些,大侠能否给想想办法

追答

额,24个小时,每个监控点算2列(时间+CHECK),那就要48列,你真觉得全列显示直观吗?
我觉得你可以写个存储过程,建立一个结果展示表,每隔1小时INSERT一次数据,想怎么展示就怎么展示。

追问

大侠说的有道理,我明天写个存储过程试试,不过我们的服务器都比较老,不知道配上定时任务全天监控的话会不会对机子负荷有影响。有问题明天再问你啊。还有你说的加完 后做行转列是怎么做?小弟菜鸟,还忘指教。。

追答

参考:
http://www.cnblogs.com/maanshancss/archive/2013/03/13/2957108.html

本回答被提问者采纳
参考技术B 如果是要将3个张表的数据合并在一起的,统计完行数后可以依据a.first_result 用left join 来实现,参考sql如下
select ta.first_result, ta.c1, tb.c2, tc.c3
from ta
left join tb on ta.first_result = tb.first_result
left join tc on ta.first_result = tc.first_result;

oracle怎么查询指定的数据

比如我有一个表A 。里面有10万条数据。只知道一个会员叫666 用什么命令可以直接找出666的信息

select * from A where name = '666'

需要注意的是用户名的类型
参考技术A select * from A where 会员名=666

以上是关于ORACLE怎么用SQL查询多张表和多个时间点的数据的行数?的主要内容,如果未能解决你的问题,请参考以下文章

oracle多张表可以都用一个序列吗?

oracle怎么查询指定的数据

SQL server 数据查询功能 下

怎样用SQL查询一个表的所有字段

两张dbf格式的表格,我要用SQL语句查询数据,要怎么弄。

oracle怎么备份多张表?