У меня есть три таблицы (две из них на самом деле являются «представлениями»).Я хочу покинуть таблицы 2 и 3 и сгруппировать их по двум общим столбцам, а затем выполнить некоторые подсчеты.Я боролся всю ночь, и я просто собираюсь выбросить свой ноутбук из окна
Вот мои три стола:
+-----------------------+
| Features |
+-----------------------+
| featureId | title |
+-----------+-----------+
| feature1 | Feature 1 |
+-----------+-----------+
| feature2 | Feature 2 |
+-----------+-----------+
| feature3 | Feature 2 |
+-----------+-----------+
+--------------------------+--------+
| Tasks | |
+--------------------------+--------+
| featureId | workstreamId | title |
+-----------+--------------+--------+
| feature1 | workstream1 | Task 1 |
+-----------+--------------+--------+
| feature2 | workstream2 | Task 2 |
+-----------+--------------+--------+
| feature2 | workstream3 | Task 3 |
+-----------+--------------+--------+
| feature2 | workstream3 | Task 3 |
+-----------+--------------+--------+
+--------------------------+-------+
| Jobs | |
+--------------------------+-------+
| featureId | workstreamId | title |
+-----------+--------------+-------+
| feature3 | workstream1 | Job 1 |
+-----------+--------------+-------+
| feature2 | workstream2 | Job 2 |
+-----------+--------------+-------+
| feature2 | workstream3 | Job 3 |
+-----------+--------------+-------+
И вот результат, который я хочуget to:
+-----------+--------------+-----------+----------+
| featureId | workstreamId | taskCount | jobCount |
+-----------+--------------+-----------+----------+
| feature1 | workstream1 | 1 | 0 |
+-----------+--------------+-----------+----------+
| feature2 | workstream2 | 1 | 1 |
+-----------+--------------+-----------+----------+
| feature2 | workstream3 | 2 | 1 |
+-----------+--------------+-----------+----------+
| feature3 | workstream1 | 0 | 1 |
+-----------+--------------+-----------+----------+
Я хочу группировать по featureId и workstreamId - эта комбинация должна быть уникальной в результатах.Я чувствую, что это должно быть действительно легко, но я просто не могу понять.
Вот что у меня есть:
SELECT
f.title,
t.workstreamId,
t.taskCount,
j.jobCount
FROM features f
LEFT JOIN (
SELECT
featureId,
workstreamId,
COUNT(workstreamId) AS taskCount
FROM tasks
GROUP BY workstreamId, featureId
) AS t
ON t.featureId = f.featureId
LEFT JOIN
(
SELECT
featureId,
workstreamId,
COUNT(workstreamId) AS jobCount
FROM jobs
GROUP BY featureId, workstreamId
) AS j
ON j.featureId = f.featureId
Любая помощь приветствуется: -)