Это - замечательный язык, но этому наносят вред, потому что (по-моему, как бизнес-владелец программного обеспечения и программист) существует очень немного коммерческих пакетов Lisp и некоторые, которые являются там спросом сбор во время выполнения (потому что надлежащий пакет Lisp может использоваться конечными пользователями для записи программ Lisp также).
я использую Стальной язык Common LISP Банка для разработки прототипа кода в соответствии с Windows и Linux, и я люблю его - но я никогда не считал бы поставку продукта записанной с ним. Нет никакого простого способа настроить доступ одиночного нажатия к программам, так, чтобы конечный пользователь никогда не сталкивался с подсказкой Lisp. Нет никакого способа поставить скомпилированный продукт так, чтобы пользователь не мог демонтировать его, внести некоторые изменения, чтобы удалить Ваше имя и продать его в качестве его собственного. Я видел упоминание о системах Lisp, что в обоих из них можно выполнить, но они - коммерческие, где необходимо платить взносы для каждого конечного пользователя программы, которая смешна.
Lisp может добиться признания однажды (и я пылко надеюсь, что он делает), но это еще не жизнеспособно для большей части коммерческого программного обеспечения. Единственное исключение - что-то, где это всегда будет работающим на системах, что Вы имеете полный контроль, как веб-сервер (и я только услышал о паре компаний с помощью него даже для этого).
SELECT tem.name, COUNT(*)
FROM (
SELECT name FROM results
UNION ALL
SELECT name FROM archive_results
) AS tem
GROUP BY name
ORDER BY name
Ваша цель ...
Результаты
в одной строке и
все экземпляры "Боба Джонса" в
Archive_Results
в отдельной строке? Предполагая, что это №1, вам нужно что-то вроде ...
SELECT name, COUNT(*) FROM
(SELECT name FROM Results UNION ALL SELECT name FROM Archive_Results)
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;