SQL Query Builder

Generate ready-to-use SQL query templates instantly. Enter your table name once and every SQL example below updates automatically. This page includes SELECT, COUNT, GROUP BY, HAVING, JOIN, CTE, Window Functions, PARTITION BY, Ranking Queries, Date Filters, Pagination, Insert, Update and Delete templates commonly used in PostgreSQL, MySQL, SQL Server and other relational databases.

Select All Records Query

SELECT *
FROM your_table_name;
  

Select Latest 100 Records Query

SELECT *
FROM your_table_name
ORDER BY id DESC
LIMIT 100;
  

Count Total Records Query

SELECT COUNT(*) AS total_records
FROM your_table_name;
  

Maximum Value Query

SELECT MAX(id) AS max_id
FROM your_table_name;
  

Minimum Value Query

SELECT MIN(id) AS min_id
FROM your_table_name;
  

Average Value Query

SELECT AVG(id) AS average_id
FROM your_table_name;
  

Sum Query

SELECT SUM(amount) AS total_amount
FROM your_table_name;
  

Distinct Values Query

SELECT DISTINCT status
FROM your_table_name;
  

Group By Query

SELECT status,
       COUNT(*) AS total
FROM your_table_name
GROUP BY status;
  

Having Clause Query

SELECT status,
       COUNT(*) AS total
FROM your_table_name
GROUP BY status
HAVING COUNT(*) > 10;
  

Order By Ascending Query

SELECT *
FROM your_table_name
ORDER BY id ASC;
  

Order By Descending Query

SELECT *
FROM your_table_name
ORDER BY id DESC;
  

Current Date Filter Query

SELECT *
FROM your_table_name
WHERE created_at >= CURRENT_DATE;
  

Last 7 Days Query

SELECT *
FROM your_table_name
WHERE created_at >= CURRENT_DATE - INTERVAL '7 days';
  

Last 30 Days Query

SELECT *
FROM your_table_name
WHERE created_at >= CURRENT_DATE - INTERVAL '30 days';
  

Pagination Query

SELECT *
FROM your_table_name
ORDER BY id
LIMIT 50 OFFSET 0;
  

Common Table Expression CTE Query

WITH recent_rows AS (
    SELECT *
    FROM your_table_name
    ORDER BY id DESC
    LIMIT 100
)
SELECT *
FROM recent_rows;
  

Partition By Query

SELECT *,
       ROW_NUMBER() OVER (
           PARTITION BY status
           ORDER BY id DESC
       ) AS row_number
FROM your_table_name;
  

Rank Query

SELECT *,
       RANK() OVER (
           ORDER BY amount DESC
       ) AS rank_value
FROM your_table_name;
  

Dense Rank Query

SELECT *,
       DENSE_RANK() OVER (
           ORDER BY amount DESC
       ) AS dense_rank_value
FROM your_table_name;
  

Duplicate Records Query

SELECT email,
       COUNT(*)
FROM your_table_name
GROUP BY email
HAVING COUNT(*) > 1;
  

Insert Query Template

INSERT INTO your_table_name (
    column_1,
    column_2
)
VALUES (
    value_1,
    value_2
);
  

Update Query Template

UPDATE your_table_name
SET column_1 = value_1
WHERE id = 1;
  

Delete Query Template

DELETE
FROM your_table_name
WHERE id = 1;