powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с запросом
8 сообщений из 8, страница 1 из 1
помогите с запросом
    #38857456
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица

id,pole1,pole2,2013,1
id,pole1,pole2,2013,2

надо сделать выборку (без union)
чтобы pole1 шла сумма по всем записям, а для pole2 бралось только значение для 2013,2

что-то не соображу как это сделать в одном запросе без union
...
Рейтинг: 0 / 0
помогите с запросом
    #38857476
приведи юзабильный набор тестовых данных и желаемый вид результата на них.
а вообще, смотреть в сторону групповых (а возможно - оконных) функций.
...
Рейтинг: 0 / 0
помогите с запросом
    #38857486
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

id,pole1,pole2,2013,1
id,pole1,pole2,2013,2

1,11,33,2013,1
2,9,4,2013,2

pole1 - это начисление за месяц
pole2 - долг на конец месяца

мне надо выбрать сумму начислений за 2 месяца, но сумму долга на 2013-02 (те на последний месяц)

должно быть в итоге

20,4
...
Рейтинг: 0 / 0
помогите с запросом
    #38857499
Perederiy,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
--
-- Тестовые данные:
with
  t (id,pole1,pole2,pole3,pole4) as
    (
      select 1, 11, 33, 2013, 1 union all
      select 2,  9,  4, 2013, 2
    )
--
-- Основной запрос:
select distinct 
       sum(pole1) over() as total_sum_of_pole2,
       first_value(pole2) over(order by pole3 desc, pole4 desc) as last_value_of_pole2
  from t

online проверка на sqlfiddle.com
...
Рейтинг: 0 / 0
помогите с запросом
    #38857518
Добрый Э - ЭхPerederiy,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
--
-- Тестовые данные:
with
  t (id,pole1,pole2,pole3,pole4) as
    (
      select 1, 11, 33, 2013, 1 union all
      select 2,  9,  4, 2013, 2
    )
--
-- Основной запрос:
select distinct 
       sum(pole1) over() as total_sum_of_pole2,
       first_value(pole2) over(order by pole3 desc, pole4 desc) as last_value_of_pole1
  from t

online проверка на sqlfiddle.com :)
...
Рейтинг: 0 / 0
помогите с запросом
    #38857524
Добрый Э - ЭхPerederiy,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
--
-- Тестовые данные:
with
  t (id,pole1,pole2,pole3,pole4) as
    (
      select 1, 11, 33, 2013, 1 union all
      select 2,  9,  4, 2013, 2
    )
--
-- Основной запрос:
select distinct 
       sum(pole1) over() as total_sum_of_pole1,
       first_value(pole2) over(order by pole3 desc, pole4 desc) as last_value_of_pole2
  from t

online проверка на sqlfiddle.com :)совсем за опечатывался...
...
Рейтинг: 0 / 0
помогите с запросом
    #38857545
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

спасибо но мне нужно именно суммирование

p1,p2,p3,p4,p5

1,1,5,2013,1
2,2,7,2013,1
3,4,5,2013,2
4,4,5,2013,2

те для 2013-2 p3 надо суммировать
для всех остальных месяцев нет
p2 суммировать для всех записей

те в итоге

11,10
...
Рейтинг: 0 / 0
помогите с запросом
    #38857556
Perederiy,

просто добавь GROUP BY:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
--
-- Тестовые данные:
with
  t (id,pole1,pole2,pole3,pole4) as
    (
      select 1,1,5,2013,1 union all
      select 2,2,7,2013,1 union all
      select 3,4,5,2013,2 union all
      select 4,4,5,2013,2
    )
--
-- Основной запрос:
select distinct 
       sum(sum(pole1)) over() as total_sum_of_pole1,
       first_value(sum(pole2)) over(order by pole3 desc, pole4 desc) as last_value_of_pole2
  from t
 group by pole3, pole4

online проверка на sqlfiddle.com
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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