#sql #matrix #indexing #match #lookup
#sql #матрица #индексирование #совпадение #поиск
Вопрос:
Я пытаюсь выполнить что-то похожее на сопоставление индексов Excel в SQL.
У меня есть матрица, похожая на приведенную ниже:
Матрица в Excel:
Это достигается переменными Pers (по вертикали) и переменным вкладом (по горизонтали), где 5-6-7-8-9-10 — это значения, которые может принимать переменный вклад. это просто для иллюстрации, моя матрица состоит из 72 столбцов на 165 строк, в общей сложности 11644 ячеек (набор возможных значений).
С помощью этих 2 переменных мне нужно извлечь для любого идентификатора значение ячейки внутри матрицы. ниже приведен пример желаемого результата:
Вывод в Excel:
Я могу сделать это в Excel с помощью сопоставления индексов, но я хотел бы импортировать эту матрицу в SQL и выполнить поиск там, чтобы вычисление могло быть динамическим, потому что у меня всегда есть новые идентификаторы с их собственными ‘pers’ и ‘contribution’, которые должны быть связаны со значением в этой матрице,поэтому неэффективно извлекать идентификаторы из SQL для выполнения вычисления в Excel, чтобы затем снова импортировать его в SQL. очевидно, что я не могу использовать «случай, когда», потому что у меня 11644 случая, которые были бы самоубийством для записи / чтения, есть ли что-нибудь в SQL, что может выполнять что-то похожее на сопоставление индексов?
Любое предложение приветствуется!
Комментарии:
1. Было бы неплохо получить более подробную информацию о таблицах, не могли бы вы опубликовать свои определения таблиц? При создании очень большого оператора sql: существуют методы для создания полного или частей оператора sql. Вы даже можете создать оператор sql в Excel и, таким образом, использовать вашу информацию для генерации всех операторов case. При этом очень большие sqll являются своего рода анти-шаблоном. Для создания хорошего sql требуется больше знаний о структуре таблиц.
2. Здравствуйте, pers — это 165 характеристик, которые может принимать идентификатор, а вклад — это цифра, представляющая вклад, который может быть предоставлен, существует 72 возможных вклада. Значение, вывод, — это оцененное значение для этого идентификатора. Обычно я все равно создаю свой оператор case в Excel, но я бы хотел избежать того, чтобы оператор case был длиной 11644, если смогу. приветствия
3. Я предлагаю создать базовую структуру и, возможно, добавить некоторые данные в db-fiddle, например, в dbfiddle.uk затем свяжите это с вопросом. Таким образом, найти жизнеспособное решение было бы намного проще.
4. хорошо, спасибо, на данный момент я собираюсь преобразовать матрицу в таблицу в Excel, что проще, и загрузить таблицу в SQL, где я могу выполнить только соединение с идентификаторами