Как распечатать каждое значение результата запроса, полученного в результате группировки - PullRequest
0 голосов
/ 16 февраля 2019
SELECT DISTINCT OCCUPATION, COUNT(*)
FROM OCCUPATIONS
GROUP BY OCCUPATION
ORDER BY COUNT(*), OCCUPATION ASC;

Выше запрос даст мне уникальную профессию и их количество в порядке возрастания их появления.Теперь я хочу использовать результат, чтобы напечатать оператор

There are a total of [occupation_count] [occupation]s.

Я пробовал это

SELECT  CONCAT('There are a total of ', COUNT(*), DISTINCT OCCUPATION, 's.')
FROM OCCUPATIONS
GROUP BY OCCUPATION
ORDER BY COUNT(*), OCCUPATION ASC;

, но я получил синтаксическую ошибку.для каждого отдельного занятия.

Как я могу это сделать?Должен ли я написать подзапрос?

1 Ответ

0 голосов
/ 16 февраля 2019

DISTINCT почти никогда не требуется в запросе, который использует GROUP BY, поэтому ваш запрос не требует этого.Так что просто используйте:

SELECT CONCAT('There are a total of ', COUNT(*), ' ', OCCUPATION, 's.')
FROM OCCUPATIONS
GROUP BY OCCUPATION
ORDER BY COUNT(*), OCCUPATION ASC;

Обратите внимание, что SELECT DISTINCT - это одно ключевое слово, например LEFT JOIN или IS NULL.Ничто не должно идти между ключевыми словами.

...