Ответ 1
SELECT tem.name, COUNT(*)
FROM (
SELECT name FROM results
UNION ALL
SELECT name FROM archive_results
) AS tem
GROUP BY name
ORDER BY name
У меня есть SQL-запрос, выглядит примерно так:
select name, count (*) from Results group by name order by name
и другой, идентичный, который загружается из таблицы результатов архива, но поля одинаковы.
select name, count (*) from Archive_Results group by name order by name
Как я мог бы объединить два в одном запросе? (Таким образом, группа по-прежнему будет работать правильно). Я пробовал с профсоюзом все, но это не сработает. Что мне не хватает?
SELECT tem.name, COUNT(*)
FROM (
SELECT name FROM results
UNION ALL
SELECT name FROM archive_results
) AS tem
GROUP BY name
ORDER BY name
Если у вас есть поддерживающие индексы и относительно высокие показатели, что-то вроде этого может быть значительно быстрее, чем предложенные решения:
SELECT name, MAX(Rcount) + MAX(Acount) AS TotalCount
FROM (
SELECT name, COUNT(*) AS Rcount, 0 AS Acount
FROM Results GROUP BY name
UNION ALL
SELECT name, 0, count(*)
FROM Archive_Results
GROUP BY name
) AS Both
GROUP BY name
ORDER BY name;
Ваша цель...
Results
в одной строке и
все экземпляры "Боб Джонса" в
Archive_Results
в отдельной строке?Предполагая, что это # 1, вам нужно что-то вроде...
SELECT name, COUNT(*) FROM
(SELECT name FROM Results UNION ALL SELECT name FROM Archive_Results)
GROUP BY name
ORDER BY name