Bird
Raised Fist0
PostgreSQLquery~5 mins

TABLESAMPLE for random sampling in PostgreSQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the TABLESAMPLE clause do in PostgreSQL?
It allows you to retrieve a random sample of rows from a table instead of the entire table, which is useful for quick analysis or testing.
Click to reveal answer
beginner
How do you specify the size of the sample when using TABLESAMPLE?
You specify the sample size as a percentage depending on the sampling method, for example: TABLESAMPLE SYSTEM (10) samples approximately 10% of the table.
Click to reveal answer
intermediate
What are the two main sampling methods supported by PostgreSQL's TABLESAMPLE?
The two main methods are SYSTEM and BERNOULLI. SYSTEM samples pages, while BERNOULLI samples rows individually.
Click to reveal answer
intermediate
True or False: Using TABLESAMPLE SYSTEM guarantees the exact percentage of rows sampled.
False. SYSTEM sampling works at the page level, so the exact number of rows sampled can vary and is approximate.
Click to reveal answer
beginner
Write a simple query to select approximately 5% random rows from a table named employees using TABLESAMPLE.
SELECT * FROM employees TABLESAMPLE SYSTEM (5);
Click to reveal answer
Which TABLESAMPLE method samples rows individually in PostgreSQL?
ABERNOULLI
BSYSTEM
CRANDOM
DPAGE
What does TABLESAMPLE SYSTEM (10) do?
ASamples exactly 10 rows
BSamples approximately 10% of the table's rows
CSamples 10 random columns
DSamples 10 random tables
Can TABLESAMPLE guarantee the exact number of rows returned?
AYes, always
BOnly with BERNOULLI
COnly with SYSTEM
DNo, it returns an approximate sample
Which of the following is a valid TABLESAMPLE clause in PostgreSQL?
ATABLESAMPLE SYSTEM (20)
BTABLESAMPLE RANDOM (20)
CTABLESAMPLE ROWS (20)
DTABLESAMPLE PERCENT (20)
Why might you use TABLESAMPLE in a query?
ATo update all rows in a table
BTo sort data alphabetically
CTo speed up queries by working with a smaller random subset
DTo create a new table
Explain how TABLESAMPLE works in PostgreSQL and the difference between SYSTEM and BERNOULLI methods.
Think about how data is stored in pages and how sampling can happen at different levels.
You got /4 concepts.
    Describe a practical scenario where using TABLESAMPLE would be helpful.
    Imagine you want to test a query or get a quick insight without scanning the whole table.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What is the main purpose of using TABLESAMPLE in a PostgreSQL query?

      easy
      A. To retrieve a random subset of rows from a table
      B. To sort the table rows in random order
      C. To permanently delete random rows from a table
      D. To create a backup of the table

      Solution

      1. Step 1: Understand the purpose of TABLESAMPLE

        TABLESAMPLE is used to get a random sample of rows from a table without scanning the entire table.
      2. Step 2: Compare options with TABLESAMPLE usage

        Only To retrieve a random subset of rows from a table describes retrieving a random subset of rows, which matches TABLESAMPLE's purpose.
      3. Final Answer:

        To retrieve a random subset of rows from a table -> Option A
      4. Quick Check:

        TABLESAMPLE = random subset retrieval [OK]
      Hint: TABLESAMPLE returns random rows, not sorting or deleting [OK]
      Common Mistakes:
      • Confusing TABLESAMPLE with ORDER BY RANDOM()
      • Thinking TABLESAMPLE deletes rows
      • Assuming TABLESAMPLE creates backups
      2.

      Which of the following is the correct syntax to sample approximately 10% of rows from a table named employees using the BERNOULLI method?

      easy
      A. SELECT * FROM employees TABLESAMPLE BERNOULLI(10);
      B. SELECT * FROM employees TABLESAMPLE SYSTEM(10);
      C. SELECT * FROM employees SAMPLE BERNOULLI(10);
      D. SELECT * FROM employees TABLESAMPLE BERNOULLI 10;

      Solution

      1. Step 1: Recall correct TABLESAMPLE syntax

        The correct syntax uses TABLESAMPLE followed by the method name and percentage in parentheses.
      2. Step 2: Check each option

        SELECT * FROM employees TABLESAMPLE BERNOULLI(10); matches the correct syntax exactly. SELECT * FROM employees TABLESAMPLE SYSTEM(10); uses SYSTEM instead of BERNOULLI. SELECT * FROM employees SAMPLE BERNOULLI(10); misses TABLESAMPLE keyword. SELECT * FROM employees TABLESAMPLE BERNOULLI 10; misses parentheses around 10.
      3. Final Answer:

        SELECT * FROM employees TABLESAMPLE BERNOULLI(10); -> Option A
      4. Quick Check:

        Correct TABLESAMPLE syntax = SELECT * FROM employees TABLESAMPLE BERNOULLI(10); [OK]
      Hint: Use TABLESAMPLE METHOD(percentage) with parentheses [OK]
      Common Mistakes:
      • Omitting TABLESAMPLE keyword
      • Using wrong method name
      • Missing parentheses around percentage
      3.

      Given a table products with 1000 rows, what is the expected approximate number of rows returned by this query?

      SELECT * FROM products TABLESAMPLE SYSTEM(5);
      medium
      A. Exactly 5 rows
      B. About 50 rows
      C. About 500 rows
      D. All 1000 rows

      Solution

      1. Step 1: Understand SYSTEM sampling percentage

        SYSTEM(5) means approximately 5% of rows are sampled.
      2. Step 2: Calculate expected rows from 1000 total

        5% of 1000 is 0.05 * 1000 = 50 rows approximately.
      3. Final Answer:

        About 50 rows -> Option B
      4. Quick Check:

        5% of 1000 = 50 [OK]
      Hint: Percentage in TABLESAMPLE is approximate row count percent [OK]
      Common Mistakes:
      • Confusing percentage with exact row count
      • Assuming SYSTEM returns fewer rows than BERNOULLI always
      • Thinking TABLESAMPLE returns all rows
      4.

      Identify the error in this query that tries to sample 20% of rows using BERNOULLI:

      SELECT * FROM orders TABLESAMPLE BERNOULLI 20;
      medium
      A. TABLESAMPLE keyword is misspelled
      B. BERNOULLI method cannot be used with TABLESAMPLE
      C. Percentage value must be between 0 and 1
      D. Missing parentheses around the percentage value

      Solution

      1. Step 1: Check TABLESAMPLE BERNOULLI syntax

        The percentage must be inside parentheses, like BERNOULLI(20).
      2. Step 2: Identify the error in the query

        The query misses parentheses around 20, causing syntax error.
      3. Final Answer:

        Missing parentheses around the percentage value -> Option D
      4. Quick Check:

        Percentage needs parentheses in TABLESAMPLE [OK]
      Hint: Always put percentage in parentheses after method name [OK]
      Common Mistakes:
      • Omitting parentheses around percentage
      • Using invalid percentage range
      • Misspelling TABLESAMPLE keyword
      5.

      You want to quickly test a query on a large table sales but need a random sample that is more uniformly random than SYSTEM sampling. Which query is best?

      Options:
      A) SELECT * FROM sales TABLESAMPLE SYSTEM(10);
      B) SELECT * FROM sales TABLESAMPLE BERNOULLI(10);
      C) SELECT * FROM sales ORDER BY RANDOM() LIMIT 100;
      D) SELECT * FROM sales TABLESAMPLE SYSTEM(100);
      hard
      A. Use SYSTEM sampling for speed but less randomness
      B. Use ORDER BY RANDOM() for perfect randomness but slower
      C. Use BERNOULLI sampling for better randomness
      D. Use SYSTEM sampling with 100% to get all rows

      Solution

      1. Step 1: Compare randomness and speed of methods

        SYSTEM is faster but less random; BERNOULLI is slower but more uniformly random.
      2. Step 2: Choose best method for uniform randomness and speed

        BERNOULLI(10) gives a good balance of randomness and reasonable speed for sampling.
      3. Final Answer:

        Use BERNOULLI sampling for better randomness -> Option C
      4. Quick Check:

        BERNOULLI = better randomness than SYSTEM [OK]
      Hint: BERNOULLI is more random; SYSTEM is faster [OK]
      Common Mistakes:
      • Choosing SYSTEM when better randomness is needed
      • Using ORDER BY RANDOM() on large tables (slow)
      • Misunderstanding 100% SYSTEM returns all rows
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard