Различные комбинации значений, основанные на одном столбце, а операции, основанные на другом

0

Например, рассмотрим таблицу со столбцами, как показано ниже, как я могу получить отдельную комбинацию из 2-х кортежей на основе значений в user, суммируя атрибут score каждой пары?

user  | score
-------------
Tom   | 13
Sam   | 7
Larry | 66
Diana | 29

Ожидаемый результат:

user1 | user2 | total_score
---------------------------
Tom   | Sam   | 20
Tom   | Larry | 79
Tom   | Diana | 42
Sam   | Larry | 73
Sam   | Diana | 36
Larry | Diana | 95
Теги:

1 ответ

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

Я думаю, вы хотите, чтобы какой-то cross join:

select t1.name, t2.name, (t1.score + t2.score) as total_score
from t t1 join
     t t2
     on t1.name > t2.name;
  • 0
    Никогда не думал об использовании таких вещей, как t1.name > t2.name ! Спасибо за идею, попробую это.
  • 0
    Не в оригинальный вопрос, но я должен заменить join с cross join и on с , where , если это ANSI SQL? (Я все еще изучаю SQL и использую MySQL для тестирования, но хотел бы знать, как обстоят дела с другими базами данных. Спасибо!)
Показать ещё 1 комментарий

Ещё вопросы

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