powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как вставить строку в результат выборки?
13 сообщений из 13, страница 1 из 1
как вставить строку в результат выборки?
    #40027102
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если запрос выдаёт так:
1
1
1
2
2
2

то как вставить одну доп.строку между 1 и 2 ?
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027393
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужто только через 2 отдельных запроса?
+ ещё один на саму строку
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027405
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
если запрос выдаёт так:
1
1
1
2
2
2

то как вставить одну доп.строку между 1 и 2 ?


Ну так вопросы не задают, телепаты отсутствуют...
Вот ответ, тебя устроит?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
values
(1),
(1),
(1),
(null),
(2),
(2),
(2);
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027411
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там обычный GROUP BY
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027435
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
там обычный GROUP BY

Вот и добавьте в запросу строку данных такую, что после всех ваших группировок и сортировок она окажется между 1 и 2.
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027466
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а типа отсортировать 1, 1.5, 2, 2.5
но это 2 запроса из одной таблицы
в одном запросе 1,2,3 - группируется, там несколько строк в каждом
в другом ИТОГО по каждому из них
как их совместить так в одном запросе, чтобы одной сортировкой обойтись?
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027480
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,

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

Попробую "протелепатить":
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with
  t(n1, n2) as
    (
     select 1, 1 union all
     select 1, 1.5 union all
     select 2, 2 union all
     select 2, 2.5
    )
select case grouping(n1,n2) 
          when 1 then 'ИТОГО' 
          when 3 then 'ВСЕГО:'
          else null 
       end as total
     , case grouping(n1,n2) when 0 then n1 else null end as x_n1
     , sum(n2) as x_n2
  from t
 group by rollup(n1,n2)
 order by n1, n2

on-line проверка на dbfiddle.uk
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027489
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабичев Сергей, много селектов )
это я и сам написал - по одному селекту на 1,2,3 и общий WITH для ИТОГО, откуда потом добавляю
но там может быть не 3, а 20...
а каждый такой селект на целый экран там
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027492
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабичев Сергей
Приведи тестовый набор данных и нужный вид итоговой выборки на нём.
По твоему словесному описанию совершенно невозможно понять, что тебе нужно....

да всё обычно:
есть таблица с колонкой, где 1,2,3
Код: sql
1.
SELECT * FROM tbl GROUP BY office, name


и ИТОГО:
Код: sql
1.
SELECT sum(col1) AS itogo FROM tbl GROUP BY office


получили 3 ИТОГО и 3 блока со строками
надо после каждого блока воткнуть соответствующий ему ИТОГО
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027497
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самый дешёвый вариант, который пришёл в голову, это в ПХП смотреть, когда 1 сменится на 2, и там вставлять строку из ИТОГО
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027498
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправка:
tip78и ИТОГО:
Код: sql
1.
SELECT sum(col1), sum(col2), sum(colN) FROM tbl GROUP BY office
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027515
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
получили 3 ИТОГО и 3 блока со строками
надо после каждого блока воткнуть соответствующий ему ИТОГО

GROUPING SETS ?
...
Рейтинг: 0 / 0
как вставить строку в результат выборки?
    #40027520
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij, походу оно
большое спасибо!
вот запрос, который выдаёт ИТОГО именно после каждого блока строк:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT av.uid, u2o.oid, sum(leads)

FROM agg_voronka2 av
JOIN users2office u2o ON u2o.uid = av.uid

WHERE date1 >= '2020-12-08'
GROUP BY GROUPING SETS ((av.uid, u2o.oid), (u2o.oid))
ORDER BY u2o.oid
;
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как вставить строку в результат выборки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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