Данные SUM на основе оператора Group By для другой таблицы

0

Я пытаюсь создать запрос, который позволяет мне получить сумму суммы, хранящуюся в одной таблице, на основе значений в другой таблице.

В частности, у меня есть одна таблица с названием "victory_bids" , которую я хочу объединить с другой таблицей, называемой "объекты". "victory_bids" содержит идентификатор пользователя и идентификатор объекта (первичный ключ таблицы "объекты" ). Таблица "objects" содержит идентификатор объекта и значение объекта. Я хочу суммировать значение из таблицы "objects" для каждого пользователя, сгруппированного по идентификатору пользователя из таблицы "victory_bids" .

Я пробовал что-то вроде этого, но он не работает:

SELECT SUM(o.value) AS total, w.uid
  FROM winning_bids w 
  LEFT JOIN objects o ON (o.id = w.oid)
 GROUP BY w.uid

Этот оператор просто возвращает все идентификаторы пользователей, но с общим значением только для первого идентификатора пользователя в каждой строке.

Любая помощь будет оценена, спасибо.

  • 0
    он должен работать. Есть ли причина для использования «левого соединения» вместо «внутреннего соединения»? Можете ли вы опубликовать пример данных?
Теги:

1 ответ

0
Лучший ответ

Это отлично работает для меня.

Вот что я сделал, чтобы проверить ваш запрос:

CREATE TABLE winning_bids (uid INT NOT NULL, oid INT NOT NULL);
INSERT INTO winning_bids (uid, oid) VALUES
(1, 1),
(1, 2),
(2, 3);

CREATE TABLE objects (id INT NOT NULL, value INT NOT NULL);
INSERT INTO objects (id, value) VALUES
(1, 1),
(2, 20),
(3, 300);

SELECT SUM(o.value) AS total, w.uid
FROM winning_bids w
LEFT JOIN objects o ON (o.id = w.oid)
GROUP BY w.uid;

Результат:

total  uid
21     1
300    2

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

  • 0
    Argh, это работает ... Похоже, я испортил свои данные, поэтому я ошибся. Я чувствую себя глупо сейчас. Спасибо за помощь!
  • 0
    @ Дан Д .: Нет проблем. Не беспокойся об этом. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню