Consider the relation account (customer, balance) where customer is a primary…
GATE · 2006 · CS
Consider the relation account (customer, balance) where customer is a primary key and there are no null values. We would like to rank customers according to decreasing balance. The customer with the largest balance gets rank 1. Ties are not broken, but ranks are skipped: if exactly two customers have the largest balance, they each get rank 1 and rank 2 is not assigned.
Query1:
select A.customer, count(B.customer)
from account A, account B
where A.balance <= B.balance
group by A.customer
Query2:
select A.customer, 1+count(B.customer)
from account A, account B
where A.balance < B.balance
group by A.customerConsider these statements about Query1 and Query2.
1. Query1 will produce the same row set as Query2 for
some but not all databases.
2. Both Query1 and Query2 are correct implementation
of the specification
3. Query1 is a correct implementation of the specification
but Query2 is not
4. Neither Query1 nor Query2 is a correct implementation
of the specification
5. Assigning rank with a pure relational query takes
less time than scanning in decreasing balance order
assigning ranks using ODBC. Which two of the above statements are correct?
- A.
2 and 5
- B.
1 and 3
- C.
1 and 4
- D.
3 and 5
Attempted by 262 students.
Sign up free to check your answer
Sign up freeLoading lesson…