You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CREATETABLEusers (
id SERIALPRIMARY KEY,
name TEXTNOT NULL,
email TEXT UNIQUE,
created_at TIMESTAMP DEFAULT NOW()
);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
SELECT*FROM users WHERE name LIKE'A%';
SELECTCOUNT(*), DATE_TRUNC('day', created_at) FROM users GROUP BY DATE_TRUNC('day', created_at);
-- CTE example
WITH active_users AS (
SELECT*FROM users WHERE created_at > NOW() - INTERVAL '7 days'
)
SELECT*FROM active_users ORDER BY name;
-- Subquery examplesSELECT*FROM users WHERE id IN (SELECT id FROM users WHERE name LIKE'A%');
SELECT id, name, (SELECTCOUNT(*) FROM users) as total_users FROM users;
SELECT*FROM users WHERE id = (SELECTMIN(id) FROM users);
-- View exampleCREATEVIEWrecent_usersASSELECT*FROM users WHERE created_at > NOW() - INTERVAL '30 days';
SELECT*FROM recent_users WHERE name LIKE'A%';
-- Window function examplesSELECT id, name, ROW_NUMBER() OVER (ORDER BY created_at) as rn FROM users;
SELECT id, name, RANK() OVER (ORDER BY name) as rank FROM users;
SELECT id, name, SUM(id) OVER (ORDER BY id) as running_total FROM users;
SELECT id, name, LAG(name) OVER (ORDER BY id) as prev_name FROM users;
SELECT id, name, LEAD(name, 1, 'N/A') OVER (ORDER BY id) as next_name FROM users;
-- RETURNING clauseUPDATE users SET name ='Robert'WHERE name ='Bob' RETURNING *;
DELETEFROM users WHERE id =1 RETURNING id, name;