ritvik360's picture
Upload folder using huggingface_hub
a39d8ef verified
"""
nl2sql-bench/server/tasks/easy.py
===================================
Task 1 — Simple Filter (difficulty: easy)
All questions target a SINGLE table with basic WHERE / ORDER BY / LIMIT.
A competent small model should solve these in 1–2 steps.
"""
from __future__ import annotations
from .base import BaseTask, TaskExample, register
@register
class SimpleFilterTask(BaseTask):
name = "simple-filter"
difficulty = "easy"
examples = [
TaskExample(
question=(
"List all gold-tier customers ordered by their name alphabetically. "
"Return columns: id, name, email, country."
),
sql=(
"SELECT id, name, email, country "
"FROM customers "
"WHERE tier = 'gold' "
"ORDER BY name ASC"
),
notes="Single table, equality filter, text sort.",
),
TaskExample(
question=(
"Show all products with a price above $100, sorted by price from "
"highest to lowest. Return columns: id, name, price."
),
sql=(
"SELECT id, name, price "
"FROM products "
"WHERE price > 100 "
"ORDER BY price DESC"
),
notes="Numeric range filter, descending sort.",
),
TaskExample(
question=(
"Find all delivered orders with a total_amount greater than $200, "
"ordered by total_amount descending. "
"Return columns: id, customer_id, total_amount, created_at."
),
sql=(
"SELECT id, customer_id, total_amount, created_at "
"FROM orders "
"WHERE status = 'delivered' "
" AND total_amount > 200 "
"ORDER BY total_amount DESC"
),
notes="Two-condition WHERE on a single table.",
),
TaskExample(
question=(
"Return the top 5 most expensive products. "
"Return columns: id, name, price."
),
sql=(
"SELECT id, name, price "
"FROM products "
"ORDER BY price DESC "
"LIMIT 5"
),
notes="ORDER BY + LIMIT, no WHERE clause.",
),
TaskExample(
question=(
"List all distinct countries where our customers come from, "
"sorted alphabetically. Return a single column: country."
),
sql=(
"SELECT DISTINCT country "
"FROM customers "
"ORDER BY country ASC"
),
notes="DISTINCT on a single column.",
),
]
def description(self) -> str:
return (
"Single-table SELECT queries with WHERE filters, ORDER BY, and LIMIT. "
"Tests basic SQL fluency."
)