Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 1

Как сделать "повёрнутую таблицу" с колонками значений?

26.03.2019, 17:18. Показов 3506. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
голову уже "сломал" как сделать преобразование ...
есть ответ запроса в "таком виде" :
RTC
1a10
1b15
1c8
1d4
2a3
2b5
2c6
2d10
3a13
3b25
3c36
3d11
R,T,C - название столбцов.

ее надо превратить c помощью sql-запроса (Postgresql) в такой вид :

Rabcd
1101584
235610
313253611

с помощью функции crosstab() нельзя .
подскажите какие-нибудь варианты, пжс.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2019, 17:18
Ответы с готовыми решениями:

Как сделать таблицу со строками и колонками
Подскажите пожалуйста, как в c# сделать таблицу со строками и колонками? Например как сделать таблицу "Цены" с 3 колонками...

Как сделать таблицу из 3 значений for
Как сделать таблицу из 3 значений for. #include <iostream> using namespace std; int main() { ...

Как сделать сводную таблицу из таблицы значений?
Такой код: Построитель = Новый ПостроительОтчета; Построитель.МакетОформления =...

2
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
28.03.2019, 00:07
В смысле по условию задания crosstab нельзя использовать??

Так-то оно легко работает
SQL
1
2
3
4
5
6
7
8
SELECT * FROM crosstab(
$$with src(R,T,C) AS (VALUES 
(1, 'a', 10), (1, 'b', 15), (1, 'c', 8), (1, 'd', 4),
(2, 'a', 3), (2, 'b', 5), (2, 'c', 6), (2, 'd', 10),
(3, 'a', 13), (3, 'b', 25), (3, 'c', 36), (3, 'd', 11)
) SELECT * FROM src$$,
$$values ('a'),('b'),('c'),('d')$$
) AS (R INT, a INT, b INT, c INT, d INT);
Если нельзя crosstab, тогда в лоб вот так (самый непроизводительный вариант, тупо заполняем таблицу по каждой ячейке)

SQL
1
2
3
4
5
6
7
8
9
10
11
12
WITH src(R,T,C) AS (VALUES 
(1, 'a', 10), (1, 'b', 15), (1, 'c', 8), (1, 'd', 4),
(2, 'a', 3), (2, 'b', 5), (2, 'c', 6), (2, 'd', 10),
(3, 'a', 13), (3, 'b', 25), (3, 'c', 36), (3, 'd', 11)
) 
SELECT 
theR.R r, 
(SELECT C FROM src AS theC WHERE theC.R = theR.R AND theC.T = 'a') a,
(SELECT C FROM src AS theC WHERE theC.R = theR.R AND theC.T = 'b') b,
(SELECT C FROM src AS theC WHERE theC.R = theR.R AND theC.T = 'c') c,
(SELECT C FROM src AS theC WHERE theC.R = theR.R AND theC.T = 'd') d
FROM (SELECT DISTINCT R FROM src) AS theR;
Может можно как-то более производительно выкрутиться, но сейчас ничего в голову не приходит...
1
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
31.03.2019, 15:04
SQL
1
2
3
4
5
6
7
8
9
10
WITH src(R,T,C) AS (VALUES 
    (1, 'a', 10), (1, 'b', 15), (1, 'c', 8), (1, 'd', 4),
    (2, 'a', 3), (2, 'b', 5), (2, 'c', 6), (2, 'd', 10),
    (3, 'a', 13), (3, 'b', 25), (3, 'c', 36), (3, 'd', 11)
) 
SELECT 
    R,
    SUM(C) FILTER (WHERE T = 'a') a, SUM(C) FILTER (WHERE T = 'b') b,
    SUM(C) FILTER (WHERE T = 'c') c, SUM(C) FILTER (WHERE T = 'd') d
FROM src GROUP BY R
Так будет всего один последовательный проход по исходнику, по крайней мере пока хэш влезает в память.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2019, 15:04
Помогаю со студенческими работами здесь

Как между колонками сделать отступ
Необходимо создать колонки одинаковой высоты как показано на картинке Ширина колонок в процентах и рекомендуется использовать следующий...

Как сделать выборку с проводок и выгрузить в таблицу значений в 1с77?
Добрый день, в 1с программировании начинаю, так что строго не судите, коллеги. Задача заключается в следующем: создаю внешнюю обработку,...

Вывести в лаяуте таблицу с шапкой и колонками
Добрые люди, подскажите пожалуйста новичку можно ли для андроида как-то прикрутить JTable (использую андроид студио, где там чтото взять...

как сделать рассылку с 3мя одинаковыми колонками, которые будут отображаться одинаково везде ( gmail, outlook etc)
Добрый день, у меня возникла проблема при верстке 3 колонок в рассылке, которые должны отображаться одинаково везде ( в одной строке на...

Переделать шаблон с двумя колонками на с тремя колонками
Доброго дня уважаемые пользователи. Помогите пожалуйста новичку переделать шаблон с двумя колонками на с тремя колонками. Пытался сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru