sqlite pivot? результирующие строки в виде столбцов - PullRequest
0 голосов
/ 27 января 2020

У меня проблемы с созданием хорошего запроса, и мне нужна ваша помощь специалиста:)

У меня есть 2 таблицы с данными

Players_ingame:
## playerid ## ## week ##  ## score ##
     13            1           5
     13            2           0
     13            3           7
     07            1           0
     07            2           8
     ..            .           ..

Players_bench:
## playerid ## ## week ##  ## score ##
     07            3           2
     ..            .           ..

Мне нужен результат моего запроса, например:

## playerid ## ## week1 ## ## week2 ## ## week3 ## ## wee... ##
     13             5           0           7           .
     07             0           8           2           .
     ..

Как я могу это сделать? Это вообще возможно? У меня есть БД SQLite, но я могу переключиться на MySQL, если это будет иметь значение

, пожалуйста, помогите .. большое спасибо

1 Ответ

1 голос
/ 27 января 2020

Используйте UNION ALL для 2 таблиц, чтобы вернуть все строки, а затем получить результаты с условным агрегированием:

select t.playerid, 
  max(case t.week when 1 then t.score end) week1,
  max(case t.week when 2 then t.score end) week2,
  max(case t.week when 3 then t.score end) week3
from (
  select * from Players_ingame
  union all
  select * from Players_bench
) t  
group by t.playerid

См. Демонстрационную версию . Результаты:

| playerid | week1 | week2 | week3 |
| -------- | ----- | ----- | ----- |
| 7        | 0     | 8     | 2     |
| 13       | 5     | 0     | 7     |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...