Вопросы, касающиеся количества Sql, соединения, процента

#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