Я использую Python и SQLite, и я пытаюсь скопировать таблицу в другую таблицу. У меня есть столбец InventoryNbr, а также столбец IndexID. Остальные столбцы при этом не имеют значения ...
3 ответа
Использовать это:
INSERT INTO MasterV2
SELECT InventoryNbr, MAX(IndexListID), col1, col2, col3, col4, col5, col6, Extra
FROM Master
GROUP BY InventoryNbr
Вышеупомянутый оператор выбора возвращает для каждой InventoryNbr
строку с максимальным значением IndexListID
, используя преимущества документированной функции SQLite.
Дополнительную информацию можно найти здесь: Обработка простого выбора
Если я правильно понимаю, вы можете использовать оконные функции:
INSERT INTO MasterV2 -- you should list the columns here
SELECT InventoryNbr, IndexListID, col1, col2, col3, col4, col5, col6, Extra
FROM (SELECT m.*,
ROW_NUMBER() OVER (PARTITION BY InventoryNbr ORDER BY IndexListID DESC) as seqnum
FROM Master m
) m
WHERE seqnum = 1;
SELECT
возвращает одну строку на InventoryNbr
. Одна строка - это строка с наибольшим значением IndexListID
.
Вы можете использовать not exists
следующим образом:
INSERT INTO MasterV2
SELECT t.*
FROM your_table t
Where not exists
(Select 1 from your_table tt
Where tt.InventoryNbr = t.InventoryNbr and tt.IndexListID > t.IndexListID );
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.