N011-M2 Tier 1 · Foundations · medium

Return each employee's precise share in a single column named `exact_share`

Part of Arithmetic and Comparison Expressions in SQL

The problem

Helix Systems' HR team is distributing a $10,000 bonus pool equally among 3 employees and needs the exact payout figure — including fractional cents — for the compensation letters.

Write a query to return each employee's precise share in a single column named exact_share.

Output:

  • A single row with one column, exact_share, expressed as a decimal value with full precision.

Run previews · Check grades

Write a query, then run it to see results here.

Worked solution Try it yourself first
Solution query
SELECT
  10000::NUMERIC / 3 AS exact_share

The shape

The ::numeric cast on 10000 turns the left operand into a decimal value, and SQL promotes the whole division to numeric to match. The fractional cents that integer division would have silently dropped survive into the result.

Clause by clause

  • SELECT 10000::numeric / 3 casts the integer 10000 to numeric first, then divides by 3. Because one operand is now numeric, PostgreSQL promotes the other operand and computes the division in decimal arithmetic. The result is 3333.333..., the exact share each employee receives. Cast presence is what unlocks the fractional cents the compensation letters require.
  • AS exact_share labels the column in the language the HR team is writing the letters in. The result reads as a precise payout figure rather than a math expression.

Why this and not 10000 / 3

Without the cast, both operands are integers, so PostgreSQL applies integer division and returns 3333. The .333... is gone the moment the operator evaluates — there's no rounding step that could be reversed, no decimal flag in the result. The query runs, returns a plausible whole-dollar figure, and the compensation letters go out short.

The cast can sit on either operand. All three of these return the same value:

SELECT 10000::numeric / 3
SELECT 10000 / 3::numeric
SELECT CAST(10000 AS numeric) / 3

What does not work is wrapping the whole expression in a cast after the fact, as in (10000 / 3)::numeric. The integer division has already happened inside the parentheses and the fractional part is gone before the cast runs.

The trap

Two integer operands and a division operator combine to silently truncate. There's no warning, no error, no flag in the result — just a plausible-looking whole number that quietly omits the cents. Any time a quotient needs to preserve its fractional part, one of the operands has to be numeric before the division evaluates.

You practiced casting one operand to numeric to force decimal division. The recurring rule: when at least one operand is decimal, the result preserves its fractional part; when both are integer, PostgreSQL truncates silently.

How you actually get good at SQL

Reading explains SQL. Writing it, over and over with instant feedback, is what makes you fluent.

That's the whole SQLMaxx loop: 600+ real problems, instant AI feedback, mastery you can actually see, and spaced review that won't let you forget.

A stack of SQL practice problem cards, the top card showing an employees table.
615 problems · 66 concepts

Real problems. Not toy examples.

615 hand-built problems spanning all 66 concepts, from basic SELECTs to window functions, built on real schemas and real business questions, the kind you'll actually get asked on the job. Enough reps to make SQL automatic.

A retro computer showing a SQL query marked correct with a green checkmark.
Instant AI feedback

Write a query. Know if it's right in one second.

No copying an answer and hoping it clicked. The AI grader checks your real query against real data, catches exactly what's wrong, and explains the fix in plain English, like a senior analyst reading over your shoulder on every problem.

A circular mastery progress dial filling from blue to green, the SQLMaxx diamond at its center.
Mastery tracking

Stop guessing whether you actually know it.

SQLMaxx tracks every concept and shows you what you've mastered and what's still shaky. Your skills fill in one concept at a time, so 'I think I get joins' becomes something you can prove.

A SQL query editor circled by a blue return arrow with a clock, scheduled to come back for review.
Spaced review

Learn it once. Keep it for good.

Most of what you learn this week fades by next week. So when a concept comes due for review, SQLMaxx hands you a fresh problem to solve from a blank editor, not a flashcard to re-read. A research-backed spaced-repetition algorithm (FSRS) times each return for right before you'd forget, so your SQL is still there months later, when the interview or the job actually needs it.

Practice, feedback, mastery, review. That's the loop that turns reading into real skill.

Start free

No account, no credit card. Start solving in under a minute.