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

Заранее известны все ли значения в поле "Тип"?
...
Рейтинг: 0 / 0
Как создать сводную таблицу SQLite?
    #40009475
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Штатных средств нет, т.к. в реляционных СУБД нет такого понятия как сводная таблица, это не эксель.
Можно так попробовать 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
Как создать сводную таблицу SQLite?
    #40017072
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вот тут много способов создания сводных таблиц
...
Рейтинг: 0 / 0
Как создать сводную таблицу SQLite?
    #40034717
JeyCi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, действительно, кроме 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
Как создать сводную таблицу SQLite?
    #40034725
JeyCi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
полагаю, EXPLAIN QUERY PLAN подксажет, индексировано ли...
...
Рейтинг: 0 / 0
Как создать сводную таблицу SQLite?
    #40071563
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
p.s.
stop... не доглядела, что 2 case-when нужны... т.е. они в полях нужны, а не в строках... тогда моё предложение - просто для инфо о скорости case-when
...
Рейтинг: 0 / 0
Как создать сводную таблицу SQLite?
    #40071564
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
8 сообщений из 8, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как создать сводную таблицу SQLite?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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