Построение SQL-запроса. Некоторые строки возвращаются один раз, некоторые нет.

Мне нужно построить SQL-запрос, который выходит за рамки моих способностей программирования. Хорошо, вот моя просьба:

Допустим, у меня есть таблица со столбцами: id, user_id, email и amount. Этот запрос должен SELECT user_id только один раз! Если я совпал с user_id один раз, запрос продолжится, но если тот же user_id снова совпадет в другой строке, мы должны пропустить его.

Вот и главная проблема...

Представим, что мы однажды захватили user_id и пропустили все те же другие строки с этим user_id, теперь мне нужно суммировать все содержимое из столбца amount для одного и того же user_id.

Я думаю, что немного усложнил это, я попытаюсь проиллюстрировать свою проблему:

иллюстрация моей проблемы

Если эта проблема не решается только с помощью SQL, тогда ответ PHP тоже будет работать.

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

Судя по изображению, user_id 56 заплатил 90,00 (12 + 45 + 33)

Может ли кто-нибудь сказать мне, как этого добиться?


person aborted    schedule 13.09.2012    source источник


Ответы (1)


Предполагая, что имя таблицы users

SELECT user_id, email, SUM(amount) FROM users GROUP BY user_id
person driangle    schedule 13.09.2012
comment
Вам нужно назвать сумму (сумму), просто любопытно? ВЫБЕРИТЕ user_id, сумма (сумма) как сумма из группы пользователей по user_id; - person Brant; 13.09.2012
comment
@lc, наверное, я предполагал, что столбец электронной почты уникален для каждого user_id. - person driangle; 13.09.2012
comment
В моем случае txn_id всегда уникален, у него уникальный индекс. Этот запрос выбирает его так, как мне нужно? - person aborted; 13.09.2012
comment
какие именно столбцы вы хотите выбрать? ваш вопрос не говорит об этом - person driangle; 13.09.2012
comment
Ну косвенно да. Мне нужен user_id и mc_gross (сумма). - person aborted; 13.09.2012
comment
@лк. . . Это просто неверно. В MySQL есть (неправильная) функция скрытых столбцов, которая позволяет выполнять именно такой запрос. Адрес электронной почты в ответе выбирается произвольно из строк в группе. - person Gordon Linoff; 13.09.2012