CREATE TABLE Lives_in (stuid NUMBER, dormid NUMBER, room_number NUMBER)
CREATE TABLE Dorm (dormid NUMBER, dorm_name VARCHAR2, student_capacity NUMBER, gender VARCHAR2)
CREATE TABLE Has_amenity (dormid NUMBER, amenid NUMBER)
CREATE TABLE Dorm_amenity (amenid NUMBER, amenity_name VARCHAR2)
CREATE TABLE Student (StuID NUMBER, LName VARCHAR2, Fname VARCHAR2, Age NUMBER, Sex VARCHAR2, Major NUMBER, Advisor NUMBER, city_code VARCHAR2)

How many students are living in a dorm with a TV Lounge? Show a bar chart grouping by first name, and I want to display y-axis from high to low order please.
SELECT Fname, COUNT(Fname) FROM Student AS T1 JOIN Lives_in AS T2 ON T1.stuid = T2.stuid WHERE T2.dormid IN (SELECT T3.dormid FROM Has_amenity AS T3 JOIN Dorm_amenity AS T4 ON T3.amenid = T4.amenid WHERE T4.amenity_name = 'TV Lounge') GROUP BY Fname ORDER BY COUNT(Fname) DESC
WITH "_u_0" AS (SELECT "T3"."dormid" FROM "Has_amenity" "T3" JOIN "Dorm_amenity" "T4" ON "T3"."amenid" = "T4"."amenid" AND "T4"."amenity_name" = 'TV Lounge' GROUP BY "dormid") SELECT "Fname", COUNT("Fname") FROM "Student" "T1" JOIN "Lives_in" "T2" ON "T1"."stuid" = "T2"."stuid" LEFT JOIN "_u_0" "_u_0" ON "T2"."dormid" = "_u_0"."" WHERE NOT "_u_0"."" IS NULL GROUP BY "Fname" ORDER BY COUNT("Fname") DESC