У меня есть две таблицы, соединенные через третью в отношениях «многие ко многим».Для упрощения:
Таблица A ID-A (int) Имя (varchar) Балл (числовой)
Таблица B ID-B (int) Имя (varchar)
ТаблицаAB ID-AB (int) A (внешний ключ ID-A) B (внешний ключ ID-B)
Мне нужно отобразить B-имя и сумму значений "Score" всехКак принадлежащий данному B. Однако следующий код:
WITH "Data" AS(
SELECT "B."."Name" As "BName", "A"."Name", "Score"
FROM "AB"
LEFT OUTER JOIN "A" ON "AB"."A" = "A"."ID-A"
LEFT OUTER JOIN "B" ON "AB"."B" = "B"."ID-B")
SELECT "BName", SUM("Score") AS "Total"
FROM "Data"
GROUP BY "Name", "Score"
ORDER BY "Total" DESC
Результаты отображают несколько строк для каждого «BName» с «счетом», разделенным на частично случайные приращения между этими строками.Например, если желаемый результат для Джонни равен 12, а для апреля - 25, запрос может отображать что-то вроде:
Johnny |7
Джонни |3
Джонни |2
Апрель |19
апрель |5
Апрель |1
и т. Д.
Даже после попытки вложения запроса и выполнения другого SELECT с помощью SUM («Оценка») результаты остаются такими же.Я не уверен, что я делаю не так?