Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / запрос с подзпросами, возможно ли по другому? / 6 сообщений из 6, страница 1 из 1
21.07.2011, 21:33
    #37362152
PG81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзпросами, возможно ли по другому?
есть таблица
вид расхода;дата;сколько1;20.06.11;42;20.06.11;51;21.06.11;22;21.06.11;63;22.06.11;8;и т.д.;
нужно написать запрос, чтобы получилось следующее
вид расхода;c 1 по 10;c 11 по 20;c 20 по 301;32;45;642;23;43;433;23;12;65
У меня одна только идея один запрос с тремя подзапросами на каждый период.
У меня вопрос есть ли другие варианты?
...
Рейтинг: 0 / 0
21.07.2011, 21:34
    #37362154
PG81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзпросами, возможно ли по другому?
есть таблица
вид расходадатасколько120.06.114220.06.115121.06.112221.06.116322.06.118и т.д.;
нужно написать запрос, чтобы получилось следующее
вид расходаc 1 по 10c 11 по 20c 20 по 30132456422343433231265
У меня одна только идея один запрос с тремя подзапросами на каждый период.
У меня вопрос есть ли другие варианты?
...
Рейтинг: 0 / 0
21.07.2011, 23:46
    #37362246
Big Andy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзпросами, возможно ли по другому?
PG81,

Да, есть вариант через group by и pivot table
...
Рейтинг: 0 / 0
22.07.2011, 00:44
    #37362300
PG81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзпросами, возможно ли по другому?
Big Andy,

а по подробней можалуйста, ни разу не слышал, очень интересно
...
Рейтинг: 0 / 0
22.07.2011, 02:49
    #37362335
Skiv-mag
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзпросами, возможно ли по другому?
Что-то в этом роде. Условия в кейсах по желанию.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
with x (id, date, value)
as (
values( 1 ,'20.06.11'::date, 4 )
union all
values( 2 ,'20.06.11'::date, 5 )
union all
values( 1 ,'21.06.11'::date, 2 )
union all
values( 2 ,'21.06.11'::date, 6 )
union all
values( 3 ,'22.06.11'::date, 8 )
)

select 
	id, 
	sum(first_dates) as first_dates,
	sum(last_dates) as last_dates
from (
	select
		id,
		case
			when date='2011-06-20' or date='2011-06-21'
			then value
			else  0 
		end as first_dates
		,
		case 
			when date='2011-06-22'
			then value
			else  0 
		end as last_dates
	from x
) as _t
group by id
...
Рейтинг: 0 / 0
22.07.2011, 07:33
    #37362384
Big Andy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос с подзпросами, возможно ли по другому?
PG81Big Andy,

а по подробней можалуйста, ни разу не слышал, очень интересно


http://www.opennet.ru/base/dev/pivot_table.txt.html
либо contrib/crosstab, если вам его будет достаточно.

Кстати, поиск по форуму по ключевым словам pivot и crosstab даёт еще много других решений
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / запрос с подзпросами, возможно ли по другому? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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