Calculate the Goals For (GF), Goals Against (GA), and Goal Difference (GD) for each team based on all matches played. Order the results by Goal Difference in descending order.
CREATE TABLE "public"."teams" (
"team_id" varchar(10) NOT NULL,
"name" varchar(80) NOT NULL,
"city" varchar(80) NOT NULL,
"playground" varchar(80) NOT NULL,
"jersey_home_color" varchar(80),
"jersey_away_color" varchar(80),
PRIMARY KEY ("team_id")
);
CREATE TABLE "public"."managers" (
"mgr_id" varchar(10) NOT NULL,
"name" varchar(80) NOT NULL,
"dob" date NOT NULL,
"team_id" varchar(10),
"since" date,
PRIMARY KEY ("mgr_id")
);
CREATE TABLE "public"."matches" (
"match_num" varchar(10) NOT NULL,
"match_date" date NOT NULL,
"host_team_id" varchar(10) NOT NULL,
"guest_team_id" varchar(10) NOT NULL,
"host_team_score" int4 NOT NULL,
"guest_team_score" int4 NOT NULL,
PRIMARY KEY ("match_num")
);
CREATE TABLE "public"."match_referees" (
"match_num" varchar(10) NOT NULL,
"referee" varchar(15),
"assistant_referee_1" varchar(15),
"assistant_referee_2" varchar(15),
"fourth_referee" varchar(15),
PRIMARY KEY ("match_num")
);
CREATE TABLE "public"."referees" (
"referee_id" varchar(10) NOT NULL,
"name" varchar(80) NOT NULL,
"dob" date NOT NULL,
PRIMARY KEY ("referee_id")
);
CREATE TABLE "public"."players" (
"player_id" varchar(10) NOT NULL,
"name" varchar(80) NOT NULL,
"dob" date NOT NULL,
"jersey_no" int4 NOT NULL,
"team_id" varchar(10) NOT NULL,
PRIMARY KEY ("player_id")
);