Skip to content

Instantly share code, notes, and snippets.

@NimaBoscarino
Created September 16, 2019 19:20
Show Gist options
  • Save NimaBoscarino/5d92db72d64981cd165cbbbf518cb9a7 to your computer and use it in GitHub Desktop.
Save NimaBoscarino/5d92db72d64981cd165cbbbf518cb9a7 to your computer and use it in GitHub Desktop.
Nested Query broken down
SELECT name,
FROM projects
JOIN tasks ON projects.id = tasks.project_id;
SELECT name,
count(tasks.id) as total,
FROM projects
JOIN tasks ON projects.id = tasks.project_id
GROUP BY projects.id;
SELECT name,
count(tasks.id) as total,
(SELECT count(*) FROM tasks WHERE tasks.project_id = projects.id AND tasks.completed) as completed
FROM projects
JOIN tasks ON projects.id = tasks.project_id
GROUP BY projects.id;
SELECT name,
count(tasks.id) as total,
(SELECT count(*) FROM tasks WHERE tasks.project_id = projects.id AND tasks.completed) as completed
FROM projects
JOIN tasks ON projects.id = tasks.project_id
GROUP BY projects.id
ORDER BY projects.id;
SELECT name,
count(tasks.id) as total,
(SELECT count(*) FROM tasks WHERE tasks.project_id = projects.id AND tasks.completed) as completed,
(SELECT count(*) FROM tasks WHERE tasks.project_id = projects.id AND tasks.completed)::float / count(tasks.id) * 100 as percent
FROM projects
JOIN tasks ON projects.id = tasks.project_id
GROUP BY projects.id
ORDER BY projects.id;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment