Data work at a company that makes databases, cloud services and finance and human resources applications means SQL is the core skill, and the data is often about money and people: invoices, ledgers, employees, cloud usage. Prepare to describe window functions and hierarchical queries in words, reconcile two finance reports that disagree, design a warehouse for sales orders, and handle numbers that change after month-end close. What to show here: strong SQL and exact numbers for finance and cloud usage. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.
How Oracle hires, in its own words, and its questions for every job →
“Our sales dashboard and the finance team's month-end report differed by a small amount that nobody could explain. I did not try to explain it from the top. I broke both down by day and by customer until the difference sat in a handful of invoices. Those invoices had been credited after the dashboard's data was loaded, and the dashboard never picked up credits issued later. I documented the cause, changed the load so that late credits are applied to the right month, and added a daily check that compares the two sources and flags any gap. The result was your result.”
Weak answers adjust one number to match the other, or stop at the total without going to the record level.
“The monthly cost report for our cloud usage had grown from seconds to many minutes as the usage table grew. I looked at the execution plan and saw it scanned the whole table for each month, because the query used a function on the date column. I rewrote the filter as a date range and added a summary table that holds usage by day and service, refreshed nightly. Before switching, I ran old and new versions for three past months and compared every row. They matched. The result was your result, and the users did not notice anything except the speed.”
Weak answers change the query and never compare the old and new results.
“I would use window functions, because they let me keep every invoice row while computing across the customer's other rows. For the running total, I take SUM of the amount over a window partitioned by customer and ordered by invoice date, with the frame running from the first row up to the current row. Each invoice then shows the total of all earlier invoices plus itself. For the rank, I use a rank function over a window partitioned by customer and ordered by amount descending. I would say which rank function I chose, because ties are handled differently by each, and finance users will ask.”
Weak answers reach for a group by, which loses the individual invoices, or ignore ties in the rank.
“The table is a tree, where each row points to its parent. I would write a recursive query. The starting part selects the director with level one. The recursive part joins the employees table to the rows found so far, matching manager id to employee id, and adds one to the level. The database repeats that until no new rows appear, which gives everyone under the director at any depth. I would guard against a loop, where bad data makes someone their own ancestor, by tracking the path or setting a maximum depth. Some databases also offer a dedicated hierarchical syntax for this.”
Weak answers join the table to itself a fixed number of times and miss deeper levels.
“Daily usage is noisy, so I would sum it by customer per week. Then I would compare the last few weeks against the customer's own average over earlier months, since a small customer and a large one have very different normal levels. A steady fall across several weeks matters more than one quiet week. I would look at which services fell, because turning off test machines after a project is normal, while a fall in production databases is a warning. I would rank the list by customer size and check against customers who left in the past to tune the signal.”
Weak answers flag any week-on-week drop, which floods the account team with false alarms.
“I would build a star schema. The fact table holds one row per order line, with the amount and quantity, and keys to dimensions: customer, product, date and salesperson. The customer dimension holds the region. When a customer moves region, I do not overwrite the old row, because past orders would then move to the new region and history would change. I add a new row for the customer with a start date and mark the old row as ended. Each fact points to the customer row that was current at order time. Reports can then show sales by region as it was, or as it is now.”
Weak answers overwrite the region and do not see that past reports would change.
“First I would find exactly which entries came in late and how much they moved the totals. Then I would tell the people who saw the first numbers, before they find out on their own. I would explain that postings into a closed month happen and are legitimate. For the future, I would agree with finance on a rule: the dashboard takes a snapshot when the month is reported, and later changes appear as a marked restatement, not as a silent change. The dashboard would show the reported figure and the current figure side by side, with the date of each.”
Weak answers hope nobody notices, or freeze the dashboard so that the late postings are never shown.
“I like analysis that lives in SQL and in well-designed tables, more than in slides. Here the database is the product, and the data is about finance, people and cloud usage, which are areas where exact numbers matter and where a wrong total is noticed. In my current job I reconciled our billing data with the ledger and it taught me how much care that takes. I would like to learn how analysts here work with very large datasets, and how usage data is turned into signals for account teams.”
Weak answers speak about dashboards in general and show no interest in SQL or in financial data.
No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.
ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.