Предложение GROUP BY и содержит неагрегированный столбец в Query - PullRequest
0 голосов
/ 24 мая 2019

У меня возникли проблемы с отображением этого запроса и запроса GROUP BY. Я продолжаю получать ту же ошибку независимо от того, что я делаю с GROUP BY. Любая помощь с благодарностью.

В настоящее время появляется эта ошибка:

Ошибка: Выражение № 2 списка SELECT отсутствует в предложении GROUP BY и содержит неагрегированный столбец «myData.stateName», который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by

Вот мой sql:

SELECT 
  stateAbv,
  stateName,
  '' AS cityName,
  count(*) AS state_count 
from
  myData 
GROUP BY stateAbv 
union
SELECT 
  stateAbv,
  stateName,
  city AS cityName,
  COUNT(*) AS city_count 
FROM
  myData 
GROUP BY stateAbv,
  city 
ORDER BY stateAbv,
  cityName

1 Ответ

1 голос
/ 24 мая 2019

Вы получаете сообщение об ошибке GROUP BY clause and contains nonaggregated column 'myData.stateName', поскольку столбец stateName не входит в предложение group by, как он говорит. Так что это говорит о том, что вы группируете несколько строк вместе, и когда запрос пытается сгруппировать столбец stateName, он может иметь разные значения в пределах сгруппированных строк. Запрос не знает, какое значение является правильным для отображения в сгруппированной строке. Вам необходимо указать способ запроса, какое значение является правильным для сохранения в сгруппированной строке. Скажем, у вас есть числовой столбец, а в строках, которые вы группируете, есть значения 1,2,3 and 4. Вы можете сказать, что я хочу получить наибольшее число из этих групп чисел и сделать это с помощью MAX(column_name), и сгруппированная строка покажет 4.

Если в вашем запросе все значения в stateName совпадают в сгруппированных строках, просто добавьте stateName в предложение group by.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...