Wells Fargo & Deutsche Bank: Data / Analytics
Wells Fargo & Deutsche Bank: Data / Analytics Interview Experiences (2025–26). Rounds, real reported questions and model answers, compiled from public candidate reports (sources at the end). Practice mode hides every answer: say your answer first, press Show answer, then rate yourself. Use 🔁 Review again to build your revision list and 🎲 Random question for a quick drill.
About this interview
Compiled from public candidate reports: Wells Fargo Data Engineer (Bengaluru, July 2025: ROW_NUMBER vs ROWID in Oracle) and Deutsche Bank Data Analyst (Mumbai, May 2026, offer: 4 rounds; Bengaluru campus, April 2025: Dijkstra; Birmingham, August 2025, offer: third-highest salary). Public guides list Data Science Consultant openings at Wells Fargo India. The questions are paraphrased, and the model answers are written by EasyLearnSpace.
| Wells Fargo | Deutsche Bank | |
|---|---|---|
| Role | Data Engineer; Data Science Consultant openings | Data Analyst |
| Rounds | Technical (Oracle SQL internals) | Resume + projects → technical (tools, architecture, problem solving) → hands-on SQL + Python → Head of Analytics (communication, goals, fit) |
| Reported questions | ROW_NUMBER vs ROWID | Joins, window functions, CTEs, query optimisation; pandas; automation; third-highest salary; Dijkstra (campus) |
| Outcome | Not selected | 2 offers, 1 not selected |
01Rounds at a glance
- Bank data roles demand strong SQL, plus Python/pandas, automation and stakeholder communication.
- Campus panels may switch languages (C++ → Python), so be fluent in Python syntax.
02Questions and model answers
- ROWID: a physical address pseudocolumn identifying where a row is stored (data object, file, block, slot). It is fast for direct access, unique per row in a table, but can change after operations such as table moves or export/import. Not for business logic.
- ROW_NUMBER(): an analytic function that assigns a sequential number to rows in a result set based on
OVER (PARTITION BY ... ORDER BY ...). Used for ranking, top-N per group and deduplication. - Also: ROWNUM is a pseudocolumn assigned before ORDER BY, a classic pitfall for top-N queries.
SELECT DISTINCT salary
FROM (SELECT salary, DENSE_RANK() OVER (ORDER BY salary DESC) AS rk FROM employees) t
WHERE rk = 3;
-- alternative: SELECT salary FROM employees ORDER BY salary DESC OFFSET 2 ROWS FETCH NEXT 1 ROW ONLY; (ties differ!)
- Explain the difference with ties:
DENSE_RANKgives the third distinct salary; OFFSET gives the third row.
WITH tx AS (
SELECT customer_id, txn_date,
CASE WHEN type = 'CREDIT' THEN amount ELSE -amount END AS signed_amt
FROM transactions
)
SELECT customer_id, txn_date, signed_amt,
SUM(signed_amt) OVER (PARTITION BY customer_id ORDER BY txn_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_balance
FROM tx;
- Read the execution plan: full scans, bad join orders, sorts spilling to disk.
- Indexes on the join and filter columns (composite, in the right column order); avoid functions on indexed columns in WHERE.
- Reduce data early: filter before joining, select only the needed columns, pre-aggregate.
- Partition large fact tables by date; use materialised views for repeated reports; update statistics.
- Measure before and after, and keep correctness checks (row counts, totals).
import heapq
def dijkstra(graph, src): # graph: {u: [(v, w), ...]}
dist = {src: 0}; pq = [(0, src)]
while pq:
d, u = heapq.heappop(pq)
if d > dist.get(u, float("inf")): continue
for v, w in graph.get(u, []):
nd = d + w
if nd < dist.get(v, float("inf")):
dist[v] = nd; heapq.heappush(pq, (nd, v))
return dist
- O((V + E) log V) with a binary heap; it needs non-negative weights (otherwise use Bellman-Ford).
Answer (STAR):
- "Monthly regulatory reports took 3 days of manual Excel work. I built a Python + SQL pipeline (pandas, templated outputs, validation checks) scheduled in Airflow."
- "The time dropped to 2 hours with automated reconciliation against source totals. Errors went from about 4 a month to 0, and the team re-used the framework for 5 other reports."
- Banks value control, accuracy and auditability, so mention the validation checks and documentation.
03How to prepare
- SQL mastery: window functions, CTEs, optimisation, Oracle specifics (ROWNUM, ROWID).
- Python/pandas for data handling and automation; one graph algorithm (Dijkstra/BFS).
- Stakeholder and impact stories for the final round.
Sources
- Taro: Wells Fargo Data Engineer, Bengaluru (Jul 2025)
- Glassdoor: Deutsche Bank Data Analyst reviews (2025–26)