У меня есть таблица с записями, представляющих клетки на матрице с й, у cordinates и значение для этой позиции, как это:SQL: данные ячейки в матрице
COL1 COL2 COL3
.... .... ......
y1 x1 value11
y1 x2 value12
y1 x3 value13
y2 x1 value21
y2 x3 value23
Всех столбцов являются Целыми значениями и только COL3 имеет уникальное ограничение. Я хочу, чтобы доклад этой таблицы в виде матрицы, где как число столбцов и Колличесто строк может меняться, как это:
COL1 X1 X2 X3
.. .. .. ..
y1 value11 value12 value13
y2 value21 null value23
В настоящее время я использую pivot table with dynamic columns, но я получаю это:
COL1 X1 X2 X3
.. .. .. ..
y1 value11 null null
y1 null value12 null
y1 null null value13
y2 value21 null null
y2 null null value23
Обратите внимание, что мне не нужна функция agregate, как в примере. Дайте мне знать, если вам нужны детали.
Распространенный способ борьбы с этим просто использовать бессмысленный оператор агрегации. Даже если вам НЕ НУЖНО какой-либо агрегации, вы все равно можете использовать группу по своим значениям Y и, скажем, max() для создаваемых вами столбцов. – Xedni
Ответы RDBMS или DBA на это должны обрабатывать это в вашем программном обеспечении отчетов и возвращать данные, как они есть в таблице. Это проблема отображения, а не проблема с данными, поэтому задача приложения заключается в ее обработке. Это может оказаться невыполнимым, поскольку большинство программ написания отчетов являются полным дерьмом, но сложность денормализации данных, подобных этому, частично объясняется этой философией. Утверждение 'PIVOT' предназначалось почти исключительно для хорошо известной агрегации финансового периода. Я не говорю: «Ты не можешь так поступать», я просто объясняю, почему так сложно. –
@Xedni Я использую этот подход, но получаю только одно значение для строки, например: id1, valA, null, null; id1, null, valB, null. Мне интересно, есть ли способ объединить все строки с сохранением id. – sillo01