111. View the Exhibit and examine the structure of the CUSTOMERS table.
Which statement would display the highest credit limit available in each income level in each city in the
CUSTOMERS table?
A. SELECT cust_city, cust_income_level, MAX(cust_credit_limit )
FROM customers
GROUP BY cust_city, cust_income_level, cust_credit_limit;
B. SELECT cust_city, cust_income_level, MAX(cust_credit_limit)
FROM customers
GROUP BY cust_city, cust_income_level; 分组先按照city再按照income level
C. SELECT cust_city, cust_income_level, MAX(cust_credit_limit)
FROM customers
GROUP BY cust_credit_limit, cust_income_level, cust_city ; 顺序错了
D. SELECT cust_city, cust_income_level, MAX(cust_credit_limit)
FROM customers
GROUP BY cust_city, cust_income_level, MAX(cust_credit_limit);
Answer: B
答案解析:
按照题意,先按照每个城市后按照每个城市中的收入水平来分组查看最高的credit limit
故在group by时应为 group by
cust_city, cust_income_level;
A答案,没有涉及到
cust_credit_limit的分组。
B答案与题意相符,正确,数据太多,取前5行。
sh@TEST0924> SELECT cust_city, cust_income_level, MAX(cust_credit_limit)
2 FROM customers where rownum<=5
3 GROUP BY cust_city, cust_income_level;
CUST_CITY CUST_INCOME_LEVEL MAX(CUST_CREDIT_LIMIT)
------------------------------ ------------------------------ ----------------------
Joinville G: 130,000 - 149,999 9000
Ede G: 130,000 - 149,999 1500
Schimmert G: 130,000 - 149,999 11000
Scheveningen G: 130,000 - 149,999 1500
Hoofddorp G: 130,000 - 149,999 7000
C答案,没有涉及cust_credit_limit分组,且
cust_income_level, cust_city 顺序错了,应为group by cust_city, cust_income_level;
D答案,语法错误
sh@TEST0924> SELECT cust_city, cust_income_level, MAX(cust_credit_limit)
2 FROM customers
3 GROUP BY cust_city, cust_income_level, MAX(cust_credit_limit);
GROUP BY cust_city, cust_income_level, MAX(cust_credit_limit)
*
ERROR at line 3:
ORA-00934: group function is not allowed here