대역폭 사용 데이터 테이블이 있습니다. 각 행에는 호스트 이름, niccardname, 사용률 및 타임 스탬프가 있습니다. 각 호스트의 최대 타임 스탬프에는 서로 다른 NIC 카드가있을 수 있습니다. 각 호스트마다 최대 타임 스탬프에서 다른 NIC 카드의 평균 활용도를 원합니다.결과 집합 행의 평균값
CREATE TABLE bandwith_utilization
(
id integer NOT NULL,
hostname character varying(255),
"timestamp" bigint,
niccardname character varying(255),
percentageutilization integer,
CONSTRAINT bandwidth_utilization_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE bandwith_utilization
OWNER TO postgres;
INSERT INTO bandwith_utilization
VALUES (1,'host1','111111','nic1',40);
INSERT INTO bandwith_utilization
VALUES (2,'host1','111112','nic1',50);
INSERT INTO bandwith_utilization
VALUES (3,'host1','111113','nic1',50);
INSERT INTO bandwith_utilization
VALUES (4,'host1','111113','nic2',70);
INSERT INTO bandwith_utilization
VALUES (5,'host2','111111','nic1',80);
INSERT INTO bandwith_utilization
VALUES (6,'host2','111112','nic1',20);
INSERT INTO bandwith_utilization
VALUES (7,'host2','111112','nic2',30);
INSERT INTO bandwith_utilization
VALUES (8,'host3','111115','nic1',10);
을 그래서이 삽입 후 내 테이블 - -
다음은 내 테이블 구조, 삽입 및 쿼리가
id hostname timestamp niccardname percentageutilization
------------------------------------------------------------------
1; "host1"; 111111; "nic1"; 40
2; "host1"; 111112; "nic1"; 50
3; "host1"; 111113; "nic1"; 50
4; "host1"; 111113; "nic2"; 70
5; "host2"; 111111; "nic1"; 80
6; "host2"; 111112; "nic1"; 20
7; "host2"; 111112; "nic2"; 30
8; "host3"; 111115; "nic1"; 10
내가 최대 타임 스탬프에서 호스트 이름 내 출력을 제공하는 쿼리가 -
select hostname, timestamp, niccardname, percentageutilization
from report.bandwith_utilization
where timestamp = (select max(timestamp)
from report.bandwith_utilization nwUtil
where nwUtil.hostname = report.bandwith_utilization.hostname
) ;
위의 쿼리 결과는 -
입니다."host1"; 111113; "nic1"; 50
"host1"; 111113; "nic2"; 70
"host2"; 111112; "nic1"; 20
"host2"; 111112; "nic2"; 30
"host3"; 111115; "nic1"; 10
그래서 Now My Expected out은 각 호스트마다 다른 NIC 카드의 평균 활용도 (%)입니다. 즉
"host1"; 111113; "nic1"; 60
"host2"; 111112; "nic1"; 25
"host3"; 111115; "nic1"; 10
위에서 언급 한 동일한 쿼리에서 최종 평균 출력을 어떻게 찾을 수 있습니까?
MySQL 또는 Postgresql을 사용하고 있습니까? (관련되지 않은 제품에 태그를 지정하지 마십시오.) – jarlh
MySQL 태그를 제거했습니다. 이것은 Postgres처럼 보입니다. –