Я уже второй день голову ломаю :(
T-sql Pivot example в гугле напиши
Pivot не катит, разумеется. Я решил уже, спасибо. На SO выложу решение как допишу..
P.S. Решение гораздо проще оказалось
Решил: https://ru.stackoverflow.com/a/1542777/296552
Скуль не для переворотов нужен, а для быстрого и удобного доступа к данным, проще уж на сервере заняться переворотом
гигабайты данных с диска в память и обратно?
а вообще я лиду то же самое говорю.
где у вас там гигабайты могут возникнуть, если вы говорите, что агрегатов нет? если нет агрегатов, то ваш датасет ограничен числом атрибутов в результате - оно должно быть примерно равно количеству записей в исходном наборе данных выглядит всё так, что вы пытаетесь пересериализовать простые KV наборы в табличный формат я всё пытаюсь понять, нафига вам тут sql попробуйте ещё раз понять, что вы делаете и зачем возможно с лидом и архитектором пока что выглядит так, что вы принесли странный кусочек какой-то большой задачи
Что Вы называете агрегатами, мне интересно, и как они связаны с гигабайтами данных, которые должны быть обработаны? Хорошо. На вход имеем таблицу вида FieldName, FieldValue, TargetKey, TargetTableName, заполненную допустим утром некой массой данных скажем два раза по 10 Гб. Необходимо эти данные разложить в две (а завтра может быть уже в 3 или в 5) разные таблицы с разной схемой данных в зависимости от бизнес-логики с постобработкой, которая использует ещё несколько ГБ данных из смежных таблиц (да, у нас значительная часть бизнес-логики лежит в хранимых процедурах, я тоже очень этому недоволен, и вытянуть эту логику на сторону сервера приложения — экономически нецелесообразно). Н-р: Исходная таблица, которая является перпендикулярной к целевым, будет ±подобного вида: ('Data','SomeBusinessData1',1,'core.target1'), ('Name','Iddqd',1,'core.target1'), ('Date','123',1,'core.target1'), ('Data','SomeBusinessData2',2,'core.target1'), ('Name','idkfa',2,'core.target1'), ('Data','SomeBusinessData3',1,'core.target2'), ('Name','Iddqd',1,'core.target2') Тогда на выходе целевые таблицы будут выглядеть примерно так: target1: (1,'SomeBusinessData1','Iddqd',123) (2,'SomeBusinessData2','idkfa',null) target2: (1,'Iddqd','SomeBusinessData3') P.S. Сорри за то, что в таком виде, наверное стоило хотя бы в гугл докс воткнуть, но суть думаю будет понятна уже и так.
Так лучше, да Число target таблиц и их схема фиксированы или постоянно меняются?
Обсуждают сегодня