Предположим, у нас есть таблица в mysql: test;
как получить таблицу результатов, такую как сводная таблица в Excel?
Пытался использовать "слияние", но MySQL не поддерживает его.
Пытался использовать "союз", но увеличивается индекс, а не столбец.
select * from test;
Вывод
+----+------------+------+-------+
| id | date | name | value |
+----+------------+------+-------+
| 1 | 2019-01-01 | a | 1 |
| 2 | 2019-01-02 | a | 2 |
| 3 | 2019-01-03 | a | 3 |
| 4 | 2019-01-04 | a | 4 |
| 5 | 2019-01-05 | a | 5 |
| 6 | 2019-01-06 | a | 6 |
| 7 | 2019-01-03 | b | 9 |
| 8 | 2019-01-04 | b | 9 |
| 9 | 2019-01-05 | b | 8 |
| 10 | 2019-01-06 | b | 7 |
| 11 | 2019-01-05 | c | 5 |
| 12 | 2019-01-06 | c | 6 |
| 13 | 2019-01-07 | c | 7 |
| 14 | 2019-01-08 | c | 8 |
| 15 | 2019-01-09 | c | 9 |
+----+------------+------+-------+
Требуется получить:
+------------+---+---+---+
| date | a | b | c |
+------------+---+---+---+
| 2019-01-01 | 1 | | |
| 2019-01-02 | 2 | | |
| 2019-01-03 | 3 | 9 | |
| 2019-01-04 | 4 | 9 | |
| 2019-01-05 | 5 | 8 | 5 |
| 2019-01-06 | 6 | 7 | 6 |
| 2019-01-07 | | | 7 |
| 2019-01-08 | | | 8 |
| 2019-01-09 | | | 9 |
+------------+---+---+---+
Я знаю, что очень легко получить результат в Excel, но как использовать SQL?
Редактировать:
Следующий вопрос.
Что если я НЕ знаю, какие имена в столбце "имя"?
То есть, могут быть a, b, c, d, e, f, g ... но я НЕ знаю, сколько существует разных имен.
Как получитьрезультат, перечислив их всех?()
+------------+---+---+---+
| date | a | b | c |...... and so on.
+------------+---+---+---+