2017-04-12 82 views
0

我有一个SQL工作,我正在为学校工作(只是一系列的查询和子查询问题),我已经完成了所有工作,但只有一个。以下是供参考的提示:SQL子查询问题

10. Find the AM hours with total traffic load with 200 or more. 

我有第一部分的代码,AM小时。它是这样的:

select hour(traffic.ttime), sum(traffic.packetsize) 
from traffic 
where hour(traffic.ttime) <= 12 
group by hour(traffic.ttime); 

我不能弄清楚的唯一的事情是如何获得只有200或更多的人。它应该只返回3行,但不管我尝试它还是返回全部或非全部。我很确定这里需要使用子查询,但我似乎无法弄清楚。这是我到目前为止已经试过:由于它只会返回所有的数据包大小的总和在给定的表

select hour(traffic.ttime), sum(traffic.packetsize) 
from traffic 
where hour(traffic.ttime) <= 12 and (select sum(traffic.packetsize) from 
traffic)>=200 
group by hour(traffic.ttime) ; 

按道理我知道这是不正确。无论如何,我都不能想出它的方法,而不会抛出错误。任何帮助,将不胜感激!

+0

您正在使用哪些DBMS? Postgres的?甲骨文? –

+0

HAVING sum(traffic.packetsize)> 200? – StanislavL

+0

这是MySQL。使用HAVING完全放弃了我的想法。谢谢你们的帮助! –

回答

0
select hour(traffic.ttime), sum(traffic.packetsize)from traffic where hour(traffic.ttime) <= 12 group by hour(traffic.ttime) having sum(traffic.packetsize)>=200 
+0

Ahhh使用HAVING。完全滑了我的脑海。谢谢! –

+0

如果它解决了您的问题,请upvote或标记为答案 – Kapil