Я изменил, но контекст, но это в основном та же проблема.
Представьте, что мы находимся в бесконечном туннеле в форме круга. Мы разбиваем каждую секцию круга, от 1 до 10, и будем называть каждую секцию slot (sl)
. В туннеле ходят 2 groups (gr)
живых существ. Каждая группа имеет 2 bands
, где каждая имеет name
и глобальный hitpoints (hp)
. Каждая группа идет вперед (хотя группы могут изменить порядок). Если группа находится в слоте № 10 и движется вперед, он будет в слоте № 1. Мы снимаем их информацию каждые day
. Все собранные данные хранятся в таблице с такой структурой:
+----------+----------------+------------------+----------------+----------------+------------------+----------------+----------------+------------------+----------------+----------------+------------------+--------------+--+
| day_id | | gr_1_sl_1_id | | gr_1_sl_1_name | | gr_1_sl_1_hp | | gr_1_sl_2_id | | gr_1_sl_2_name | | gr_1_sl_2_hp | | gr_2_sl_1_id | | gr_2_sl_1_name | | gr_2_sl_1_hp | | gr_2_sl_2_id | | gr_2_sl_2_name | | gr_2_sl_2_hp | |
+----------+----------------+------------------+----------------+----------------+------------------+----------------+----------------+------------------+----------------+----------------+------------------+--------------+--+
| 1 | 3 | orc | 100 | 4 | goblin | 10 | 10 | human | 50 | 1 | dwarf | 25 | |
| 2 | 6 | goblin | 7 | 7 | orc | 76 | 2 | human | 60 | 3 | dwarf | 28 | |
+----------+----------------+------------------+----------------+----------------+------------------+----------------+----------------+------------------+----------------+----------------+------------------+--------------+--+
Как видите, столбцы структурированы последовательно, а данные показывают, что является фактическим значением. Вместо этого я хочу, чтобы информация формировалась таким образом:
+---------+-------+-------+-----------+---------+
| id_game | gr_id | sl_id | band_name | band_hp |
+---------+-------+-------+-----------+---------+
| 1 | 1 | 3 | orc | 100 |
| 1 | 1 | 4 | goblin | 10 |
| 1 | 2 | 10 | human | 50 |
| 1 | 2 | 1 | dwarf | 25 |
| 2 | 1 | 6 | goblin | 7 |
| 2 | 1 | 7 | orc | 76 |
| 2 | 2 | 2 | human | 60 |
| 2 | 2 | 3 | dwarf | 28 |
+---------+-------+-------+-----------+---------+
У меня есть эта информация в power bi, хотя я могу создавать представления на сервере sql, если это необходимо. Я перепробовал много вещей, самым близким, что я получил, было разворачивание и разбор исходных столбцов, чтобы получить day_id
, gr_id
, sl_id
, attributes
и values
. В attributes
и values
это, в основном, имя и hp с соответствующим значением (я изменил hp на строку), но потом у меня есть запас, я не уверен, что делать дальше.
Кто угодно есть какие-нибудь идеи? Имейте в виду, что я упростил проблему; там больше групп, больше слотов, больше полос и больше статистики (то есть рейтинг атаки и защиты и т. д. c.)