Sql-цикл по уникальным элементам столбца

#sql #sqlite

#sql #sqlite

Вопрос:

Я пытаюсь получить данные из строк в столбцы. Это мои данные перед запросом.

введите описание изображения здесь

Это мой запрос.

 SELECT
    Date,
    SUM(CASE WHEN (Terms="Art") THEN 1 ELSE 0 END) AS Art,
    SUM(CASE WHEN (Terms="Action") THEN 1 ELSE 0 END) AS Action,
    SUM(CASE WHEN (Terms="Board") THEN 1 ELSE 0 END) AS Board,
    SUM(CASE WHEN (Terms="Puzzle") THEN 1 ELSE 0 END) AS Puzzle,
    SUM(CASE WHEN (Terms="Adventure") THEN 1 ELSE 0 END) AS Adventure,
    SUM(CASE WHEN (Terms="Others") THEN 1 ELSE 0 END) AS Others
FROM 
    __table__
GROUP BY 
    Date
 

После запроса это мои данные.

введите описание изображения здесь

Это нормально и предназначено для данных. Но проблема заключается в запросе, как вы можете видеть, я должен явно писать каждый термин. Я хочу автоматизировать это с помощью цикла. Теоретическое решение состоит в том, чтобы написать подзапрос, чтобы получить все уникальные термины, а затем выполнить цикл по ним. Но я не знаю, как это сделать.

Комментарии:

1. Вам нужно sql решение или pandas ? Если sql , пожалуйста, пометьте СУБД, которую вы используете, вместе с ее версией. Например Oracle11g , и т.д. SQL Server 2019 ,

2. использование sqlite для Python

3. SQLite не поддерживает сводные данные, поэтому вам придется записывать каждый термин.