⚙️ Settings
WITH recent_orders AS (
SELECT
customer_id,
order_id,
order_date,
total_amount
FROM orders
WHERE order_date >= DATEADD(day, -30, GETDATE())
)
SELECT
customer_id,
COUNT(order_id) AS order_count,
SUM(total_amount) AS total_spent
FROM recent_orders
GROUP BY customer_id
ORDER BY total_spent DESC;
WITH RECURSIVE employee_hierarchy AS (
-- Anchor: top-level rows (no manager)
SELECT
employee_id,
manager_id,
employee_name,
1 AS level
FROM employees
WHERE manager_id IS NULL
UNION ALL
-- Recursive: join children to their parent's result
SELECT
e.employee_id,
e.manager_id,
e.employee_name,
eh.level + 1
FROM employees e
INNER JOIN employee_hierarchy eh
ON e.manager_id = eh.employee_id
)
SELECT *
FROM employee_hierarchy
ORDER BY level, employee_name;
-- Note: SQL Server / Oracle: drop the RECURSIVE keyword (just WITH employee_hierarchy AS (...))
SELECT
o.order_id,
c.customer_name,
o.order_date,
p.product_name,
oi.quantity
FROM orders o
INNER JOIN customers c
ON o.customer_id = c.customer_id
LEFT JOIN order_items oi
ON o.order_id = oi.order_id
LEFT JOIN products p
ON oi.product_id = p.product_id
WHERE o.order_date >= '2026-01-01'
ORDER BY o.order_date DESC;
SELECT
DATE_TRUNC('month', order_date) AS order_month, -- PostgreSQL
-- FORMAT(order_date, 'yyyy-MM') AS order_month, -- SQL Server
-- DATE_FORMAT(order_date, '%Y-%m') AS order_month, -- MySQL
COUNT(*) AS order_count,
SUM(total_amount) AS revenue
FROM orders
GROUP BY DATE_TRUNC('month', order_date)
ORDER BY order_month;
SELECT
customer_id,
order_id,
order_date,
total_amount,
ROW_NUMBER() OVER (
PARTITION BY customer_id
ORDER BY order_date DESC
) AS order_rank,
SUM(total_amount) OVER (
PARTITION BY customer_id
ORDER BY order_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total
FROM orders;
CREATE PROCEDURE GetCustomerOrders
@CustomerId INT,
@StartDate DATE = NULL,
@EndDate DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
order_id,
order_date,
total_amount
FROM orders
WHERE customer_id = @CustomerId
AND (@StartDate IS NULL OR order_date >= @StartDate)
AND (@EndDate IS NULL OR order_date <= @EndDate)
ORDER BY order_date DESC;
END;
-- Call it: EXEC GetCustomerOrders @CustomerId = 101, @StartDate = '2026-01-01';
MERGE INTO customers AS target
USING staging_customers AS source
ON target.customer_id = source.customer_id
WHEN MATCHED THEN
UPDATE SET
target.customer_name = source.customer_name,
target.email = source.email,
target.updated_at = GETDATE()
WHEN NOT MATCHED THEN
INSERT (customer_id, customer_name, email, created_at)
VALUES (source.customer_id, source.customer_name, source.email, GETDATE());
#FACC15
rgb(250, 204, 21)
rgb(98%, 80%, 8%)
hsl(46, 96%, 53%)
hsv(46, 92%, 98%)
cmyk(0%, 18%, 92%, 2%)
Pomodoro Timer — Free Online Focus Timer
The Pomodoro Timer is a classic work/break focus timer with customizable durations, cycle tracking, and an audio alert when time's up. It's built for anyone who wants a simple online pomodoro timer to structure focused work sessions without installing an app. Set your focus and break lengths, hit start, and the timer automatically alternates between work and rest.
⚡ Key Takeaways
- Classic work/break structure with fully customizable focus and break durations.
- Automatically alternates phases and plays an audio alert when time's up.
- Tracks completed focus cycles for the current session.
- Resets if the tab is closed or refreshed — it doesn't save session history.
What, Who, When & Why
| What it's for | A work/break focus timer based on the Pomodoro Technique, with customizable durations and cycle tracking. |
|---|---|
| Who it's for | Anyone who wants structured focus sessions for deep work, studying, or combating procrastination. |
| When to use it | At the start of a task you want to commit to working on for a fixed, manageable period. |
| Why it's needed | Open-ended work sessions are easy to lose focus during; a visible countdown creates a concrete commitment to stay on task. |
| Best way to use it | Pick one specific task before starting each session rather than a vague goal, so you have a clear stopping point. |
How to Use the Pomodoro Timer
- Set your Focus duration and Break duration in minutes (defaults to 25 and 5, the traditional Pomodoro lengths).
- Click Start to begin the countdown.
- Use Pause to temporarily stop the timer, or Reset to start over.
- When the timer reaches zero, an audio alert plays and it automatically switches between Focus and Break phases.
- Completed focus cycles are tracked and displayed as you work.
What Is the Pomodoro Technique?
The Pomodoro Technique is a time-management method that breaks work into focused intervals (traditionally 25 minutes) separated by short breaks (traditionally 5 minutes), with a longer break typically taken after every four cycles. The structure is designed to maintain concentration while preventing burnout, using the timer itself as a forcing function to stay on task rather than relying purely on willpower.
Example
A typical session: set Focus to 25 minutes and Break to 5, then click Start. After 25 minutes, an audio alert plays and the phase automatically switches to "Break Time." After the 5-minute break ends, it switches back to Focus and the cycle counter increases by one — giving you a running total of completed focus sessions without needing to track them manually.
Key Features
- Customizable focus and break durations, not locked to the traditional 25/5 split.
- Automatic switching between Focus and Break phases.
- Audio alert when a phase ends, so you don't need to watch the clock.
- Cycle counter tracking how many focus sessions you've completed.
- Start, Pause, and Reset controls for full manual control.
Practical Use Cases
- Deep work sessions: structure focused blocks of time for writing, coding, or studying.
- Combating procrastination: use a visible countdown to commit to starting a task for a fixed, manageable period.
- Study sessions: break studying into focused intervals with built-in breaks to maintain concentration.
- Team or personal productivity tracking: use the cycle counter to gauge how many focused sessions you complete in a day.
- Task batching: pair each Pomodoro cycle with a single specific task to avoid multitasking during the focus period.
Tips for Best Results
- Pick one specific task before starting each focus session rather than a vague goal, so you have a clear stopping point.
- If 25 minutes feels too short or too long for your work style, adjust the duration — the technique's core value is the structured alternation, not the exact numbers.
- Use the cycle counter at the end of the day to reflect on how many focused sessions you actually completed versus planned.
Related Terminology
Each work interval in the Pomodoro Technique is traditionally called a "pomodoro" (Italian for tomato, named after the tomato-shaped kitchen timer originally used by the technique's creator). A full cycle typically consists of one focus session followed by one break, with longer breaks recommended after several consecutive cycles to avoid fatigue.
Important Considerations
The timer runs within this browser tab — closing the tab, refreshing the page, or navigating away will reset the timer, since no session state is preserved across a page reload. This tool tracks cycles for the current session only and doesn't retain historical data across days or browser sessions.
Related Tools
Pair your focus sessions with Sticky Notes to track what you're working on during each cycle. For tracking longer-term deadlines alongside your daily focus sessions, use Time Till.
Frequently Asked Questions
Can I change the default 25-minute focus time?
Yes, both the focus and break durations are fully customizable — set them to whatever lengths work best for you.
Does the timer keep running if I close the tab?
No, the timer runs within the browser tab and resets if you close it, refresh the page, or navigate away.
How does it track completed cycles?
Each time a full focus session completes, the cycle counter increases by one, giving you a running total of completed focus sessions during your use of the timer.
Does it save my cycle history across different days?
No, the cycle counter tracks your current session only and resets if you close or refresh the page — it doesn't retain historical data across visits.
Tools for analysts, developers & QA engineers
33 free, browser-based utilities — text and list tools, SQL helpers, converters, and small productivity apps. Everything runs locally; nothing you type or paste is ever uploaded.
For Analysts
Clean lists, build SQL fragments, and reshape data without opening a spreadsheet.
For Developers
Format SQL, convert data formats, and handle everyday text and encoding tasks.
For QA Engineers
Generate test data, compare text output, and sanitize queries before sharing them.