Task have been created by all the requirements. (almoust)
git clone https://github.com/StanislavJPG/task_manager.gitpy -m venv envenv\Scripts\activateThe same venv creation on Unix/Linux/macOS
python3 -m venv envsource env/bin/activatecd task_managerpip install -r requirements.txtSECRET_KEY=...python manage.py migratepython manage.py runserverhttp://127.0.0.1:8000
Tasks
SELECT DISTINCT
status
FROM
tasks
ORDER BY
status ASCSELECT
p.id AS project_id,
p.name AS project_name,
COUNT(t.id) AS task_count
FROM
projects p
JOIN
tasks t ON p.id = t.project_id
GROUP BY
p.id, p.title
ORDER BY
task_count DESCSELECT
p.id AS project_id,
p.name AS project_name,
COUNT(t.id) AS task_count
FROM
projects p
JOIN
tasks t ON p.id = t.project_id
GROUP BY
p.id, p.title
ORDER BY
project_nameSELECT
*
FROM
tasks t
WHERE
t.name LIKE 'N%'SELECT
p.name,
COUNT(t.id) as task_count
FROM
projects p
LEFT JOIN
tasks t
ON p.id = t.project_id
WHERE
p.name LIKE '%a%'
GROUP BY p.id, p.titleSELECT
t.name
FROM
tasks t
GROUP BY
t.name
HAVING
COUNT(t.name) > 1
ORDER BY
t.name ASC7. get the list of tasks having several exact matches of both name and status, from the project 'Delivery’. Order by matches count
SELECT
t.name,
t.status
FROM
tasks t
INNER JOIN
projects p
ON t.project_id = p.id
WHERE
p.name = 'Delivery'
GROUP BY
t.name, t.status
HAVING
COUNT(t.status) > 1 AND COUNT(t.name) > 1
ORDER BY
COUNT(t.name) DESC8. get the list of project names having more than 10 tasks in status 'completed'. Order by project_id
SELECT DISTINCT
t.project_id,
p.name
FROM
projects p
INNER JOIN
tasks t
ON p.id = t.project_id
WHERE
t.status = 'completed'
GROUP BY
t.project_id, p.name
HAVING
COUNT(t.id) > 10
ORDER BY
t.project_id