SQLite не поддерживает pivot
(что мне особенно не нравится в любом случае), поэтому используйте условное агрегирование:
select date,
max(case when label = 'a' then data end) as a,
max(case when label = 'b' then data end) as b,
max(case when label = 'c' then data end) as c,
max(case when label = 'd' then data end) as d
from t
group by date;
К сожалению, запросы SQL имеют фиксированный набор столбцов.Итак, если у вас есть переменное количество тегов, вам нужно использовать динамический SQL для генерации оператора.То есть вам нужно будет построить запрос как строку и затем выполнить его.
Кроме того, базы данных имеют максимальное ограничение на количество столбцов в таблице и набор результатов.Я думаю, что в SQLite ограничение по умолчанию составляет 2000 столбцов.Это ограничивает количество значений, которые вы можете иметь.