@CodeDes3D

Почему SQL суммирует с предыдущей группой?

Вот БД по которым происходит выборка:
Рассматривается БД кораблей, участвовавших во второй мировой войне. Имеются следующие отношения:
Classes (class, type, country, numGuns, bore, displacement)
Ships (name, class, launched)
Battles (name, date)
Outcomes (ship, battle, result)

Вот запрос: запрос выбирает каждую страну и производит математические действия над калибром орудия кораблей этой страны - bore, после чего суммирует результаты для каждой группы по стране:
SELECT country, SUM((POW(bore, 3) / 2)) FROM Classes GROUP BY country;
А вот результат:
country         mw
germany      1687.5
gt.britain     3375
japan          4288
usa             5468

Результаты ошибочны, потому что запрос почему-то суммирует mw первой группы с mw каждо
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
mahoho
@mahoho
Full stack certified PHP developer.
Запрос делает ровно то, что вы попросили - посчитал с группировкой по стране. Если хотите группировать еще по типу, то добавьте его в список группировки:
SELECT country, type, SUM((POW(bore, 3) / 2)) FROM Classes GROUP BY country, type;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nozzy
Symfony, Laravel, SQL
SUM((POW(bore, 3) / 2)) OVER (PARTITION BY country)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы