A - false; keyword ALL is valid, it is used in Group Comparison Conditions, see Oracle doc: Oracle Database, Release 19, SQL Language Reference, 6 Conditions, Comparison Conditions
B - false; GROUP BY clause is valid, it is used with Aggregate Functions, see Oracle doc: Oracle Database, Release 19, SQL Language Reference, 7 Functions, Aggregate Functions: C - false; The query gives required results. The most inner query returns maximum promotional costs within groups formed with all promotions with same duration in days. The inner query which starts SELECT promo_id returns those ID of promotions, which costs is smaller than any maximum costs returned with the most inner query. The outer query returns those product IDs, which have the promo_id returned with the previous query. There must be some promo_cost which is smaller than any maximum promo_cost within groups. Only in that case the query returns some rows.
D - true; see C