Non-Correlated Subqueries help

Link to the excercise: https://www.codecademy.com/courses/sql-table-transformation/lessons/subqueries/exercises/non-correlated-iii?action=resume_content_item

SELECT a.dep_month,
a.dep_day_of_week,
AVG(a.flight_count) AS average_flights
FROM (
SELECT dep_month,
dep_day_of_week,
dep_date,
COUNT(*) AS flight_count
FROM flights
GROUP BY 1,2,3
) a
GROUP BY 1,2
ORDER BY 1,2;

My question is, what does the a stand for in a.dep_month, a.dep_day_of_week, and a.flight_count? Also, why is there an a after the ) in

FROM (
SELECT dep_month,
dep_day_of_week,
dep_date,
COUNT(*) AS flight_count
FROM flights
GROUP BY 1,2,3
) a

Thanks.

FROM (

) a

a in this instance is the table from the inner query, which is what the outer query will be applied to. We need to use object syntax to reach the columns of that table, not the table in the inner query.