My favourite question at job interviews is this. Not that it is suitable for every situation, but when a person tells that he is quite wise in both Perl and databases, I ask it.
Imagine that you are creating the search engine (yet another google, yes) and you have billions of pages scanned and an inverse index. The structure of index is straightforward: table of tripples ($word_id, $page_id, $number_of_occurrences). Both identifiers are numbers in tables that contain every known word and every known URI. Number of occurrences tells how many times a word appeared on that particular page.
The question itself is how to display 10 most relevant pages for the query "Putin -Bush", where minus indicates that the word must not appear on a page. Search result should also contain the total number of suitable pages.
Queries with each word in separate give millions of pages, and you cannot store in memory indexes that were found, and of course you cannot make any calculations with two such lists fully kept in memory.