对于我的班级,我们获得了与子查询相关的作业,我的教授一般都擅长解释我努力学习本部分核心原理的代码。
以下是表格的代码以及我认为我可能需要做的事情的开始
CREATE TABLE WEBSERVER
( IP CHAR(30),
vendor CHAR(30),
os CHAR(30),
location CHAR(30),
PRIMARY KEY(IP)
);
CREATE TABLE TRAFFIC
( id INT,
tdate DATE ,
ttime TIME,
SourceIP CHAR(30),
Protocol CHAR(10),
WEBSERVER_IP CHAR(30),
packetsize FLOAT,
PRIMARY KEY (id),
FOREIGN KEY (WEBSERVER_IP) REFERENCES WEBSERVER(IP)
)
这是我到目前为止所做的事情,并且正在努力从这里开始:
select count(protocol), Protocol from traffic group by protocol
这就是问题:
查找每种协议类型的连接频率。 (比率=(与协议的连接数)/(连接总数)
-HINT:您需要为此问题使用子查询)
答案 0 :(得分:1)
你可以这样做:
select protocol, count(*)/(select count(*) from traffic) as freq
from traffic
group by protocol
如果你的表有这样的条目:
create table traffic (protocol char(10));
insert into traffic values ('TCP'), ('UDP'), ('TCP');
您的结果将是:
| protocol | freq |
|----------|--------|
| TCP | 0.6667 |
| UDP | 0.3333 |