What this question is asking you to do is write a an SQL query working out average salaries for each company, and then return the names of the companies that have a higher average salary than the company named "First Bank Corp". This is very easy to do using sql functions such as SUM(), AVG(), COUNT() etc, but the second part clearly states we cannot use these.
I played around with it for a while and it seemed my queries were getting more and more complicated, by creating new tables with numbered rows etc - which seems well beyond the difficulty level of this question. Are you sure you typed the exact wording? Are you sure you gave all the available information? Can you re post this question with part a. which you left out?
A small bit of information like "no two companies are in the same city" can make a heap of difference; since we know no too employees have the same name, and no one employee works for two companies (as employees is primary key in both tables)
Remember, with SQL, we cannot incrementally number a row without using count(). Except if the tables themselves had an identity column incrementing by 1, which these don't. And since it is non procedural, we cannot ensure a row value has a number one higher than the previous row without using at the least a count() function.
------------
In response to additional the details, Have you been taught about cursors yet? That is, would you like an answer involving a cursor? It can be done that way. But if you haven't that will be a useless answer to you. I'll keep thinking about it for a more simple and clean answer....
This is quite a tough one but a good question, I need to find this textbook!