#postgresql
#postgresql
Вопрос:
У меня есть два стола, скатерти и обувь. то, что я пытаюсь сделать, — это извлечь данные из одежды и обуви, а затем подсчитать общее количество, прежде чем рассчитать процент. вот мой код.
select cloths.id shoes.id count(*) cloths.id, shoes.id as total, SUM(total) * 100.0 / SUM(SUM(total)) OVER () AS Percentage from cloths inner join shoes on cloths.id = shoes.id order by cloths.id group by cloths.id, shoes.id
однако я продолжаю получать синтаксическую ошибку в «группе»или рядом с ней. Я пробовал разные решения, но это не сработает. Я буду признателен, если кто-нибудь сможет мне помочь. Спасибо!
Ответ №1:
Неправильный порядок в «ПОРЯДКЕ ПО» и «ГРУППЕ ПО»:
SELECT cloths.id shoes.id COUNT(*) cloths.id, shoes.id as total, SUM(total) * 100.0 / SUM(SUM(total)) OVER () AS Percentage FROM cloths INNER JOIN shoes ON cloths.id = shoes.id GROUP BY cloths.id, shoes.id -- this one first ORDER BY cloths.id; -- this one last