If
a derived column list is not included in a SQL-derived table, the
names of the SQL-derived table columns must match the names of the
columns specified in the target list of the derived-table expression.
If a column name is not specified in the target list of the derived-table
expression, as in the case where a constant expression or an aggregate
is present in the target list of the derived-table expression, the
resulting column in the SQL-derived table has no name. The server
returns error 11073, A derived-table expression
may not have null column names...
If a derived column list is included in a SQL-derived table, it must specify names for all columns in the target list of the derived-table expression. These column names must be used in the query block instead of the natural column names of the SQL-derived table. The columns must be listed in the order in which they occur in the derived-table expression, and a column name cannot be specified more than once in the derived column list.