Вот пример. Уже ночь, поэтому за код не ручаюсь. Сортировку по id и дате думаю сами прикрутите без проблем.
import sqlite3
conn = sqlite3.connect('colors.db')
cursor = conn.cursor()
cursor.execute('SELECT id FROM colors') # Выбираем все id из таблици colors
result = cursor.fetchall()
unique_ids = set(result) # Здесь получаем уникальные id
for unique_id in unique_ids: # Проходимся по каждому id
cursor.execute('SELECT * FROM colors WHERE id=?',(unique_id[0],)) # Выбираем все записи с уникальным id
result2 = cursor.fetchall()
colors_list = [unique_id[0]] # Создаем список, который будем заносить в базу. Сразу первым элементом
# добавляем в список id
for tmp in result2: # В result2 у нас все записи каждого id
colors_list.append(tmp[1]) # Кортеж из базы имеет 3 элемента - id, цвет, дата. Нам нужен цвет, поэтому
# добавляем в список второй элемент
if len(colors_list) < 10: # Проверяем длину списка.
for _ in range(0,11-len(colors_list)): # Здесь в цикле выравниваем список, чтобы его потом передать в базу.
colors_list.append(None) # Добавляем в список None
print(colors_list)
cursor.execute('INSERT INTO colors2 VALUES(?,?,?,?,?,?,?,?,?,?,?)',(colors_list))
conn.commit()
conn.close()
Структуры таблиц
CREATE TABLE "colors" (
"id" int,
"color1" text,
"date" text
);
CREATE TABLE "colors2" (
"id" int,
"color1" text,
"color2" text,
"color3" text,
"color4" text,
"color5" text,
"color6" text,
"color7" text,
"color8" text,
"color9" text,
"color10" text
);