Гость
Map
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как создать сводную таблицу SQLite? / 8 сообщений из 8, страница 1 из 1
17.10.2020, 13:21
    #40009435
Samyrro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
Здравствуйте, помогите советом, как должен выглядеть SQL запрос для создания новой сводной таблицы на основе существующей таблицы, при условии, что неизвестно, сколько типов может быть в строках
...
Рейтинг: 0 / 0
17.10.2020, 13:36
    #40009436
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
Samyrro,

Заранее известны все ли значения в поле "Тип"?
...
Рейтинг: 0 / 0
17.10.2020, 16:19
    #40009475
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
Штатных средств нет, т.к. в реляционных СУБД нет такого понятия как сводная таблица, это не эксель.
Можно так попробовать https://stackoverflow.com/questions/1237068/how-to-pivot-in-sqlite-or-i-e-select-in-wide-format-a-table-stored-in-long-form
...
Рейтинг: 0 / 0
11.11.2020, 11:34
    #40017072
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
Вот тут много способов создания сводных таблиц
...
Рейтинг: 0 / 0
10.01.2021, 19:50
    #40034717
JeyCi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
да, действительно, кроме case when ..end вариантов не много... здесь
Код: sql
1.
2.
3.
4.
5.
   select k,
          sum(case when c='x' then level else null end) as x,
          sum(case when c='y' then level else null end) as y
   from loc
   group by k


остальное помедленнее (если объединять по-старинке)..
хотя PRAGMA automatic_index; может и ускорить невзначай join'ы и select'ы по where
авторAutomatic indexing is enabled by default as of version 3.7.17 (2013-05-20), but this might change in future releases of SQLite.
...
Рейтинг: 0 / 0
10.01.2021, 20:07
    #40034725
JeyCi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
полагаю, EXPLAIN QUERY PLAN подксажет, индексировано ли...
...
Рейтинг: 0 / 0
20.05.2021, 09:05
    #40071563
JeyCi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
JeyCi
да, действительно, кроме case when ..end вариантов не много...

я в вашу задачу не вчитывалась, но судя по вашему запросу - ещё так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
   select k, sum(level) as x
   from loc
   where c='x' 
   group by k
  UNION ALL
   select k, sum(level) as x
   from loc
   where c='y' 
   group by k


у меня UNION ALL отрабатывает быстрее, чем CASE WHEN
p.s.
stop... не доглядела, что 2 case-when нужны... т.е. они в полях нужны, а не в строках... тогда моё предложение - просто для инфо о скорости case-when
...
Рейтинг: 0 / 0
20.05.2021, 09:08
    #40071564
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать сводную таблицу SQLite?
JeyCi
JeyCi
да, действительно, кроме case when ..end вариантов не много...

я в вашу задачу не вчитывалась, но судя по вашему запросу - ещё так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
   select k, sum(level) as x
   from loc
   where c='x' 
   group by k
  UNION ALL
   select k, sum(level) as x
   from loc
   where c='y' 
   group by k


у меня UNION ALL отрабатывает быстрее, чем CASE WHEN

Можно проще
Код: sql
1.
2.
3.
4.
   select c, k, sum(level) as x
   from loc
   where c in ('x', 'y')
   group by c, k
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как создать сводную таблицу SQLite? / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]