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

Bohroo 2015-07-02 05:54:59


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

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

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

以前都是进行简单的数据库操作,查询,没接触过这种稍微复杂的,还望大神赐教。
...全文
253 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
IceIsabel 2015-07-08
  • 打赏
  • 举报
回复
select 设备ID,count(*),sum(时长) from 表1
where 使用日期 = 某月
group by 设备ID
union all
select 设备ID,count(*),sum(时长) from 表2
where 使用日期 = 某月
group by 设备ID
Bohroo 2015-07-06
  • 打赏
  • 举报
回复
引用 2 楼 jdsnhan 的回复:
select count(设备ID),sum(时长) from (select 设备ID,时长 from 表1 union all select 设备ID,时长 from 表2) where 使用日期 = 某月
有个新疑问,实际上表1与表2中使用时间这个字段名是不一样的,还可以用sum()来直接统计么?如何修改?
RUMBLE_ZHENG 2015-07-04
  • 打赏
  • 举报
回复
楼上的们,都不用分组吗?
碧水幽幽泉 2015-07-04
  • 打赏
  • 举报
回复
引用 2 楼 jdsnhan 的回复:
select count(设备ID),sum(时长) from (select 设备ID,时长 from 表1 union all select 设备ID,时长 from 表2) where 使用日期 = 某月
这种是很简单的SQL问题。 使用count和sum就可以解决,1/2 楼都是正解。
Iamagril 2015-07-04
  • 打赏
  • 举报
回复
这可以用sql的聚合函数解决,count() 计数的、sum()求总合,楼主找点这方面资料看看就会了,很简单
丹心明月 2015-07-04
  • 打赏
  • 举报
回复
select 设备ID, sum(使用时长) "使用了多长时间", count(1) "使用了多少次" from tab_name where 使用日期 between start_date and end_date group by 设备ID; 这个可以查找具体时间的,如果是某个月,可以自行给时间做调整。
binsweet 2015-07-03
  • 打赏
  • 举报
回复
聚合函数,count和sum
jdsnhan 2015-07-03
  • 打赏
  • 举报
回复
select count(设备ID),sum(时长) from (select 设备ID,时长 from 表1 union all select 设备ID,时长 from 表2) where 使用日期 = 某月
sych888 2015-07-02
  • 打赏
  • 举报
回复
select count(设备ID),sum(时间) from tab_name where 某个月

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧