当前位置: 代码迷 >> Oracle技术 >> 能否通过SQL语句来得到这些数据呢
  详细解决方案

能否通过SQL语句来得到这些数据呢

热度:391   发布时间:2016-04-24 08:05:12.0
可否通过SQL语句来得到这些数据呢?


Oracle数据库,大致这样的两张表,分别储存着两种不同类型的设备。
设备每使用一次,就会在数据库写入一次记录。
现在我想要从这两张表中得出如下数据

每个设备在某个月内被使用了多少次---也就是某个设备ID出现了多少次
每个设备在某个月内总共被使用了多长时间---将每次使用的时间相加

如何通过sql语句来得到这样的查询结果?我看到网上有说数据库函数的。

以前都是进行简单的数据库操作,查询,没接触过这种稍微复杂的,还望大神赐教。

------解决思路----------------------
select count(设备ID),sum(时间) from tab_name where 某个月
------解决思路----------------------
select  count(设备ID),sum(时长) from 
(select 设备ID,时长 from 表1
union all
select 设备ID,时长 from 表2)
where 使用日期 = 某月
------解决思路----------------------
select 设备ID, 
       sum(使用时长) "使用了多长时间", 
       count(1) "使用了多少次"
  from tab_name  
 where 使用日期 between start_date  and end_date
 group by 设备ID;
 
 这个可以查找具体时间的,如果是某个月,可以自行给时间做调整。
------解决思路----------------------
select 设备ID,count(*),sum(时长) from 表1
where 使用日期 = 某月
group by 设备ID
union all
select 设备ID,count(*),sum(时长) from 表2
where 使用日期 = 某月 
group by 设备ID
  相关解决方案