powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопро про pivot
5 сообщений из 5, страница 1 из 1
Вопро про pivot
    #39894311
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой набор данных:
Код: plsql
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
   select 'CDO' group_name, '07' month_num, 'JULY' month_name, 3 week_name, 1 usr_cnt from dual union all
   select 'CDO', '07', 'JULY', 4, 2 from dual union all
   select 'CDO', '07', 'JULY', 5, 2 from dual union all
   select 'CDO', '08', 'AUGUST', 1, 1 from dual union all
   select 'CDO', '08', 'AUGUST', 3, 1 from dual union all
   select 'CDO', '08', 'AUGUST', 4, 2 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 1, 1 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 2, 2 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 4, 2 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 5, 1 from dual union all
   select 'CDO', '10', 'OCTOBER', 1, 5 from dual union all
   select 'CDO', '10', 'OCTOBER', 2, 1 from dual union all
   select 'CDO', '10', 'OCTOBER', 3, 6 from dual union all
   select 'CDO', '10', 'OCTOBER', 4, 5 from dual union all
   select 'CDO', '10', 'OCTOBER', 5, 5 from dual union all
   select 'CDO', '11', 'NOVEMBER', 1, 2 from dual union all
   select 'CDO', '11', 'NOVEMBER', 2, 1 from dual union all
   select 'CDO', '11', 'NOVEMBER', 3, 3 from dual union all
   select 'Администрирование', '07', 'JULY', 1, 14 from dual union all
   select 'Администрирование', '07', 'JULY', 2, 14 from dual union all
   select 'Администрирование', '07', 'JULY', 3, 13 from dual union all
   select 'Администрирование', '07', 'JULY', 4, 16 from dual union all
   select 'Администрирование', '07', 'JULY', 5, 16 from dual union all
   select 'Администрирование', '08', 'AUGUST', 1, 15 from dual union all
   select 'Администрирование', '08', 'AUGUST', 2, 16 from dual union all
   select 'Администрирование', '08', 'AUGUST', 3, 22 from dual union all
   select 'Администрирование', '08', 'AUGUST', 4, 23 from dual union all
   select 'Администрирование', '08', 'AUGUST', 5, 6 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 1, 18 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 2, 14 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 3, 11 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 4, 20 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 5, 6 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 1, 20 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 2, 12 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 3, 18 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 4, 21 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 5, 8 from dual union all
   select 'Администрирование', '11', 'NOVEMBER', 1, 13 from dual union all
   select 'Администрирование', '11', 'NOVEMBER', 2, 18 from dual union all
   select 'Администрирование', '11', 'NOVEMBER', 3, 16 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 1, 4 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 2, 2 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 3, 5 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 4, 8 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 5, 8 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 1, 10 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 2, 9 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 3, 16 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 4, 13 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 5, 2 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 1, 10 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 2, 9 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 3, 7 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 4, 11 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 1, 1 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 1, 11 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 2, 4 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 3, 7 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 4, 6 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 5, 5 from dual union all
   select 'Аудит, работа с журналами', '11', 'NOVEMBER', 1, 2 from dual union all
   select 'Аудит, работа с журналами', '11', 'NOVEMBER', 2, 3 from dual union all
   select 'Аудит, работа с журналами', '11', 'NOVEMBER', 3, 4 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 1, 14 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 2, 13 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 3, 6 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 4, 20 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 5, 14 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 1, 11 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 2, 17 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 3, 15 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 4, 23 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 5, 9 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 1, 17 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 2, 8 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 3, 13 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 4, 10 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 5, 3 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 1, 12 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 2, 11 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 3, 17 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 4, 18 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 5, 7 from dual union all
   select 'Бизнес глоссарий', '11', 'NOVEMBER', 1, 11 from dual union all
   select 'Бизнес глоссарий', '11', 'NOVEMBER', 2, 20 from dual union all
   select 'Бизнес глоссарий', '11', 'NOVEMBER', 3, 18 from dual union all
   select 'Вход в систему', '07', 'JULY', 1, 57 from dual union all
   select 'Вход в систему', '07', 'JULY', 2, 52 from dual union all
   select 'Вход в систему', '07', 'JULY', 3, 42 from dual union all
   select 'Вход в систему', '07', 'JULY', 4, 73 from dual union all
   select 'Вход в систему', '07', 'JULY', 5, 50 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 1, 61 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 2, 78 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 3, 80 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 4, 76 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 5, 21 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 1, 55 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 2, 49 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 3, 62 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 4, 54 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 5, 15 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 1, 1 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 2, 41 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 3, 48 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 4, 52 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 5, 30 from dual union all
   select 'Вход в систему', '11', 'NOVEMBER', 1, 39 from dual union all
   select 'Вход в систему', '11', 'NOVEMBER', 2, 69 from dual union all
   select 'Вход в систему', '11', 'NOVEMBER', 3, 73 from dual union all
   select 'Мониторинг работы АС', '07', 'JULY', 1, 3 from dual union all
   select 'Мониторинг работы АС', '07', 'JULY', 5, 2 from dual union all
   select 'Мониторинг работы АС', '09', 'SEPTEMBER', 1, 1 from dual union all
   select 'Мониторинг работы АС', '10', 'OCTOBER', 4, 1 from dual union all
   select 'Поиск', '07', 'JULY', 1, 15 from dual union all
   select 'Поиск', '07', 'JULY', 2, 9 from dual union all
   select 'Поиск', '07', 'JULY', 3, 8 from dual union all
   select 'Поиск', '07', 'JULY', 4, 8 from dual union all
   select 'Поиск', '07', 'JULY', 5, 11 from dual union all
   select 'Поиск', '08', 'AUGUST', 1, 11 from dual union all
   select 'Поиск', '08', 'AUGUST', 2, 15 from dual union all
   select 'Поиск', '08', 'AUGUST', 3, 13 from dual union all
   select 'Поиск', '08', 'AUGUST', 4, 13 from dual union all
   select 'Поиск', '08', 'AUGUST', 5, 2 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 1, 8 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 2, 9 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 3, 16 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 4, 10 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 5, 2 from dual union all
   select 'Поиск', '10', 'OCTOBER', 1, 17 from dual union all
   select 'Поиск', '10', 'OCTOBER', 2, 13 from dual union all
   select 'Поиск', '10', 'OCTOBER', 3, 10 from dual union all
   select 'Поиск', '10', 'OCTOBER', 4, 14 from dual union all
   select 'Поиск', '10', 'OCTOBER', 5, 6 from dual union all
   select 'Поиск', '11', 'NOVEMBER', 1, 18 from dual union all
   select 'Поиск', '11', 'NOVEMBER', 2, 10 from dual union all
   select 'Поиск', '11', 'NOVEMBER', 3, 21 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 1, 1 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 2, 2 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 3, 1 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 4, 12 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 5, 5 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 1, 6 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 2, 2 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 3, 5 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 4, 9 from dual union all
   select 'Профиль пользователя', '09', 'SEPTEMBER', 1, 5 from dual union all
   select 'Профиль пользователя', '09', 'SEPTEMBER', 3, 2 from dual union all
   select 'Профиль пользователя', '09', 'SEPTEMBER', 4, 1 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 1, 3 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 2, 2 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 3, 2 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 4, 4 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 5, 1 from dual union all
   select 'Профиль пользователя', '11', 'NOVEMBER', 1, 3 from dual union all
   select 'Профиль пользователя', '11', 'NOVEMBER', 2, 4 from dual union all
   select 'Профиль пользователя', '11', 'NOVEMBER', 3, 3 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 1, 30 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 2, 30 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 3, 24 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 4, 40 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 5, 27 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 1, 30 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 2, 35 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 3, 35 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 4, 41 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 5, 15 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 1, 29 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 2, 24 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 3, 38 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 4, 33 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 5, 9 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 1, 32 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 2, 31 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 3, 29 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 4, 36 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 5, 17 from dual union all
   select 'Реестр АС, объекты модели', '11', 'NOVEMBER', 1, 25 from dual union all
   select 'Реестр АС, объекты модели', '11', 'NOVEMBER', 2, 39 from dual union all
   select 'Реестр АС, объекты модели', '11', 'NOVEMBER', 3, 51 from dual union all
   select 'Реестр витрин', '07', 'JULY', 1, 9 from dual union all
   select 'Реестр витрин', '07', 'JULY', 2, 16 from dual union all
   select 'Реестр витрин', '07', 'JULY', 3, 11 from dual union all
   select 'Реестр витрин', '07', 'JULY', 4, 18 from dual union all
   select 'Реестр витрин', '07', 'JULY', 5, 15 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 1, 12 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 2, 14 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 3, 14 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 4, 25 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 5, 7 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 1, 13 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 2, 9 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 3, 19 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 4, 14 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 5, 5 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 1, 12 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 2, 14 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 3, 12 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 4, 24 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 5, 6 from dual union all
   select 'Реестр витрин', '11', 'NOVEMBER', 1, 10 from dual union all
   select 'Реестр витрин', '11', 'NOVEMBER', 2, 29 from dual union all
   select 'Реестр витрин', '11', 'NOVEMBER', 3, 27 from dual union all
   select 'Супермаркет', '07', 'JULY', 1, 26 from dual union all
   select 'Супермаркет', '07', 'JULY', 2, 27 from dual union all
   select 'Супермаркет', '07', 'JULY', 3, 15 from dual union all
   select 'Супермаркет', '07', 'JULY', 4, 28 from dual union all
   select 'Супермаркет', '07', 'JULY', 5, 19 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 1, 34 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 2, 41 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 3, 42 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 4, 44 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 5, 9 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 1, 24 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 2, 21 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 3, 23 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 4, 24 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 5, 5 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 1, 19 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 2, 8 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 3, 10 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 4, 11 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 5, 8 from dual union all
   select 'Супермаркет', '11', 'NOVEMBER', 1, 10 from dual union all
   select 'Супермаркет', '11', 'NOVEMBER', 2, 21 from dual union all
   select 'Супермаркет', '11', 'NOVEMBER', 3, 17 from dual



Из него надо получить следующий набор данных:
Код: plsql
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.
select 'CDO' x1, null JULY1, null JULY2, 1 JULY3, 2 JULY4, 2 JULY5,
  1 AUGUST1, null AUGUST2, 1 AUGUST3, 2 AUGUST4, null AUGUST5,
  1 SEPTEMBER1, 2 SEPTEMBER2, null SEPTEMBER3, 2 SEPTEMBER4, 1 SEPTEMBER5,
  5 OCTOBER1, 1 OCTOBER2, 6 OCTOBER3, 5 OCTOBER4, 5 OCTOBER5,
  2 NOVEMBER1, 1 NOVEMBER2, 3 NOVEMBER3 from dual union all
select 'Администрирование', 14, 14, 13, 16, 16,  15, 16, 22, 23, 6,  18, 14, 11, 20, 6,
  20, 12, 18, 21, 8,  13, 18, 16 from dual union all
select 'Аудит, работа с журналами', 4, 2, 5, 8, 8,  10, 9, 16, 13, 2,  10, 9, 7, 11, 1,
  20, 12, 18, 21, 8,  13 from dual union all
select 'Бизнес глоссарий', 14, 13, 6, 20, 14,  11, 17, 15, 23, 9,  17, 8, 13, 10, 3,
  12, 11, 17, 18, 7,  11, 20, 18 from dual union all
select 'Вход в систему', 57, 52, 42, 73, 50,  61, 78, 80, 76, 21,  55, 49, 62, 54, 15,
  55, 41, 48, 52, 30,  39, 69, 73 from dual union all
select 'Мониторинг работы АС', 3, null, null, null, 2,  null, null, null, null, null,
  1, null, null, null, null,  null, null, null, 1, null,  null, null, null from dual union all
select 'Поиск', 15, 9, 8, 8, 11,  11, 15, 13, 13, 2,  8, 9, 16, 10, 2,  17, 13, 10, 14, 6,
  18, 10, 21 from dual union all
select 'Профиль пользователя', 1, 2, 1, 12, 5,  6, 2, 5, 9, null,  5, null, 2, 1, null,
  3, 2, 2, 4, 1,  3, 4, 3 from dual union all
select 'Реестр АС, объекты модели', 30, 30, 24, 40, 27,  30, 35, 35, 41, 15,  29, 24, 38, 33, 9,
  32, 31, 29, 36, 17,  25, 39, 51 from dual union all
select 'Реестр витрин', 9, 16, 11, 18, 15,  12, 14, 14, 25, 7,  13, 9, 19, 14, 5,
  12, 14, 12, 24, 6,  10, 29, 27 from dual union all
select 'Супермаркет', 26, 27, 15, 28, 19,  34, 41, 42, 44, 9,  24, 21, 23, 24, 5,
  19, 8, 10, 11, 8,  10, 21, 17
from dual



Я это сделал с помощью следующего sql-запроса:
Код: plsql
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
with t as
  (select 'CDO' group_name, '07' month_num, 'JULY' month_name, 3 week_name, 1 usr_cnt from dual union all
   select 'CDO', '07', 'JULY', 4, 2 from dual union all
   select 'CDO', '07', 'JULY', 5, 2 from dual union all
   select 'CDO', '08', 'AUGUST', 1, 1 from dual union all
   select 'CDO', '08', 'AUGUST', 3, 1 from dual union all
   select 'CDO', '08', 'AUGUST', 4, 2 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 1, 1 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 2, 2 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 4, 2 from dual union all
   select 'CDO', '09', 'SEPTEMBER', 5, 1 from dual union all
   select 'CDO', '10', 'OCTOBER', 1, 5 from dual union all
   select 'CDO', '10', 'OCTOBER', 2, 1 from dual union all
   select 'CDO', '10', 'OCTOBER', 3, 6 from dual union all
   select 'CDO', '10', 'OCTOBER', 4, 5 from dual union all
   select 'CDO', '10', 'OCTOBER', 5, 5 from dual union all
   select 'CDO', '11', 'NOVEMBER', 1, 2 from dual union all
   select 'CDO', '11', 'NOVEMBER', 2, 1 from dual union all
   select 'CDO', '11', 'NOVEMBER', 3, 3 from dual union all
   select 'Администрирование', '07', 'JULY', 1, 14 from dual union all
   select 'Администрирование', '07', 'JULY', 2, 14 from dual union all
   select 'Администрирование', '07', 'JULY', 3, 13 from dual union all
   select 'Администрирование', '07', 'JULY', 4, 16 from dual union all
   select 'Администрирование', '07', 'JULY', 5, 16 from dual union all
   select 'Администрирование', '08', 'AUGUST', 1, 15 from dual union all
   select 'Администрирование', '08', 'AUGUST', 2, 16 from dual union all
   select 'Администрирование', '08', 'AUGUST', 3, 22 from dual union all
   select 'Администрирование', '08', 'AUGUST', 4, 23 from dual union all
   select 'Администрирование', '08', 'AUGUST', 5, 6 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 1, 18 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 2, 14 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 3, 11 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 4, 20 from dual union all
   select 'Администрирование', '09', 'SEPTEMBER', 5, 6 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 1, 20 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 2, 12 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 3, 18 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 4, 21 from dual union all
   select 'Администрирование', '10', 'OCTOBER', 5, 8 from dual union all
   select 'Администрирование', '11', 'NOVEMBER', 1, 13 from dual union all
   select 'Администрирование', '11', 'NOVEMBER', 2, 18 from dual union all
   select 'Администрирование', '11', 'NOVEMBER', 3, 16 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 1, 4 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 2, 2 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 3, 5 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 4, 8 from dual union all
   select 'Аудит, работа с журналами', '07', 'JULY', 5, 8 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 1, 10 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 2, 9 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 3, 16 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 4, 13 from dual union all
   select 'Аудит, работа с журналами', '08', 'AUGUST', 5, 2 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 1, 10 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 2, 9 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 3, 7 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 4, 11 from dual union all
   select 'Аудит, работа с журналами', '09', 'SEPTEMBER', 1, 1 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 1, 11 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 2, 4 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 3, 7 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 4, 6 from dual union all
   select 'Аудит, работа с журналами', '10', 'OCTOBER', 5, 5 from dual union all
   select 'Аудит, работа с журналами', '11', 'NOVEMBER', 1, 2 from dual union all
   select 'Аудит, работа с журналами', '11', 'NOVEMBER', 2, 3 from dual union all
   select 'Аудит, работа с журналами', '11', 'NOVEMBER', 3, 4 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 1, 14 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 2, 13 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 3, 6 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 4, 20 from dual union all
   select 'Бизнес глоссарий', '07', 'JULY', 5, 14 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 1, 11 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 2, 17 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 3, 15 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 4, 23 from dual union all
   select 'Бизнес глоссарий', '08', 'AUGUST', 5, 9 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 1, 17 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 2, 8 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 3, 13 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 4, 10 from dual union all
   select 'Бизнес глоссарий', '09', 'SEPTEMBER', 5, 3 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 1, 12 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 2, 11 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 3, 17 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 4, 18 from dual union all
   select 'Бизнес глоссарий', '10', 'OCTOBER', 5, 7 from dual union all
   select 'Бизнес глоссарий', '11', 'NOVEMBER', 1, 11 from dual union all
   select 'Бизнес глоссарий', '11', 'NOVEMBER', 2, 20 from dual union all
   select 'Бизнес глоссарий', '11', 'NOVEMBER', 3, 18 from dual union all
   select 'Вход в систему', '07', 'JULY', 1, 57 from dual union all
   select 'Вход в систему', '07', 'JULY', 2, 52 from dual union all
   select 'Вход в систему', '07', 'JULY', 3, 42 from dual union all
   select 'Вход в систему', '07', 'JULY', 4, 73 from dual union all
   select 'Вход в систему', '07', 'JULY', 5, 50 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 1, 61 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 2, 78 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 3, 80 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 4, 76 from dual union all
   select 'Вход в систему', '08', 'AUGUST', 5, 21 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 1, 55 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 2, 49 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 3, 62 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 4, 54 from dual union all
   select 'Вход в систему', '09', 'SEPTEMBER', 5, 15 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 1, 1 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 2, 41 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 3, 48 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 4, 52 from dual union all
   select 'Вход в систему', '10', 'OCTOBER', 5, 30 from dual union all
   select 'Вход в систему', '11', 'NOVEMBER', 1, 39 from dual union all
   select 'Вход в систему', '11', 'NOVEMBER', 2, 69 from dual union all
   select 'Вход в систему', '11', 'NOVEMBER', 3, 73 from dual union all
   select 'Мониторинг работы АС', '07', 'JULY', 1, 3 from dual union all
   select 'Мониторинг работы АС', '07', 'JULY', 5, 2 from dual union all
   select 'Мониторинг работы АС', '09', 'SEPTEMBER', 1, 1 from dual union all
   select 'Мониторинг работы АС', '10', 'OCTOBER', 4, 1 from dual union all
   select 'Поиск', '07', 'JULY', 1, 15 from dual union all
   select 'Поиск', '07', 'JULY', 2, 9 from dual union all
   select 'Поиск', '07', 'JULY', 3, 8 from dual union all
   select 'Поиск', '07', 'JULY', 4, 8 from dual union all
   select 'Поиск', '07', 'JULY', 5, 11 from dual union all
   select 'Поиск', '08', 'AUGUST', 1, 11 from dual union all
   select 'Поиск', '08', 'AUGUST', 2, 15 from dual union all
   select 'Поиск', '08', 'AUGUST', 3, 13 from dual union all
   select 'Поиск', '08', 'AUGUST', 4, 13 from dual union all
   select 'Поиск', '08', 'AUGUST', 5, 2 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 1, 8 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 2, 9 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 3, 16 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 4, 10 from dual union all
   select 'Поиск', '09', 'SEPTEMBER', 5, 2 from dual union all
   select 'Поиск', '10', 'OCTOBER', 1, 17 from dual union all
   select 'Поиск', '10', 'OCTOBER', 2, 13 from dual union all
   select 'Поиск', '10', 'OCTOBER', 3, 10 from dual union all
   select 'Поиск', '10', 'OCTOBER', 4, 14 from dual union all
   select 'Поиск', '10', 'OCTOBER', 5, 6 from dual union all
   select 'Поиск', '11', 'NOVEMBER', 1, 18 from dual union all
   select 'Поиск', '11', 'NOVEMBER', 2, 10 from dual union all
   select 'Поиск', '11', 'NOVEMBER', 3, 21 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 1, 1 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 2, 2 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 3, 1 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 4, 12 from dual union all
   select 'Профиль пользователя', '07', 'JULY', 5, 5 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 1, 6 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 2, 2 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 3, 5 from dual union all
   select 'Профиль пользователя', '08', 'AUGUST', 4, 9 from dual union all
   select 'Профиль пользователя', '09', 'SEPTEMBER', 1, 5 from dual union all
   select 'Профиль пользователя', '09', 'SEPTEMBER', 3, 2 from dual union all
   select 'Профиль пользователя', '09', 'SEPTEMBER', 4, 1 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 1, 3 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 2, 2 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 3, 2 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 4, 4 from dual union all
   select 'Профиль пользователя', '10', 'OCTOBER', 5, 1 from dual union all
   select 'Профиль пользователя', '11', 'NOVEMBER', 1, 3 from dual union all
   select 'Профиль пользователя', '11', 'NOVEMBER', 2, 4 from dual union all
   select 'Профиль пользователя', '11', 'NOVEMBER', 3, 3 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 1, 30 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 2, 30 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 3, 24 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 4, 40 from dual union all
   select 'Реестр АС, объекты модели', '07', 'JULY', 5, 27 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 1, 30 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 2, 35 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 3, 35 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 4, 41 from dual union all
   select 'Реестр АС, объекты модели', '08', 'AUGUST', 5, 15 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 1, 29 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 2, 24 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 3, 38 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 4, 33 from dual union all
   select 'Реестр АС, объекты модели', '09', 'SEPTEMBER', 5, 9 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 1, 32 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 2, 31 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 3, 29 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 4, 36 from dual union all
   select 'Реестр АС, объекты модели', '10', 'OCTOBER', 5, 17 from dual union all
   select 'Реестр АС, объекты модели', '11', 'NOVEMBER', 1, 25 from dual union all
   select 'Реестр АС, объекты модели', '11', 'NOVEMBER', 2, 39 from dual union all
   select 'Реестр АС, объекты модели', '11', 'NOVEMBER', 3, 51 from dual union all
   select 'Реестр витрин', '07', 'JULY', 1, 9 from dual union all
   select 'Реестр витрин', '07', 'JULY', 2, 16 from dual union all
   select 'Реестр витрин', '07', 'JULY', 3, 11 from dual union all
   select 'Реестр витрин', '07', 'JULY', 4, 18 from dual union all
   select 'Реестр витрин', '07', 'JULY', 5, 15 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 1, 12 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 2, 14 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 3, 14 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 4, 25 from dual union all
   select 'Реестр витрин', '08', 'AUGUST', 5, 7 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 1, 13 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 2, 9 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 3, 19 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 4, 14 from dual union all
   select 'Реестр витрин', '09', 'SEPTEMBER', 5, 5 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 1, 12 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 2, 14 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 3, 12 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 4, 24 from dual union all
   select 'Реестр витрин', '10', 'OCTOBER', 5, 6 from dual union all
   select 'Реестр витрин', '11', 'NOVEMBER', 1, 10 from dual union all
   select 'Реестр витрин', '11', 'NOVEMBER', 2, 29 from dual union all
   select 'Реестр витрин', '11', 'NOVEMBER', 3, 27 from dual union all
   select 'Супермаркет', '07', 'JULY', 1, 26 from dual union all
   select 'Супермаркет', '07', 'JULY', 2, 27 from dual union all
   select 'Супермаркет', '07', 'JULY', 3, 15 from dual union all
   select 'Супермаркет', '07', 'JULY', 4, 28 from dual union all
   select 'Супермаркет', '07', 'JULY', 5, 19 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 1, 34 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 2, 41 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 3, 42 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 4, 44 from dual union all
   select 'Супермаркет', '08', 'AUGUST', 5, 9 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 1, 24 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 2, 21 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 3, 23 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 4, 24 from dual union all
   select 'Супермаркет', '09', 'SEPTEMBER', 5, 5 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 1, 19 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 2, 8 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 3, 10 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 4, 11 from dual union all
   select 'Супермаркет', '10', 'OCTOBER', 5, 8 from dual union all
   select 'Супермаркет', '11', 'NOVEMBER', 1, 10 from dual union all
   select 'Супермаркет', '11', 'NOVEMBER', 2, 21 from dual union all
   select 'Супермаркет', '11', 'NOVEMBER', 3, 17 from dual)
select *
  (select group_name, to_number(month_num) month_num, w1, w2, w3, w4, w5
   from t
   pivot (sum(usr_cnt) for week_num in (1 w1, 2 w2, 3 w3, 4 w4, 5 w5)))
pivot (sum(w1) w1, sum(w2) w2, sum(w3) w3, sum(w4) w4, sum(w5) w5)
  for (month_num) in (7 m7, 8 m8, 9 m9, 10 m10, 11 m11))
order by 1



Но этот запрос не является универсальным, поскольку жёстко настроен на конкретный набор месяцев (с 7-го по 11-й). Вопрос - как сделать этот запрос универсальным? Я думал о том, чтобы использовать динамический sql, но, возможно, есть более элегантное решение?

Oracle EE 12.1.0.2.0
...
Рейтинг: 0 / 0
Вопро про pivot
    #39894314
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pastic
Но этот запрос не является универсальным, поскольку жёстко настроен на конкретный набор месяцев (с 7-го по 11-й). Вопрос - как сделать этот запрос универсальным?
Завяжись на двенадцать месяцев 01-12.
...
Рейтинг: 0 / 0
Вопро про pivot
    #39894318
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Pastic
Но этот запрос не является универсальным, поскольку жёстко настроен на конкретный набор месяцев (с 7-го по 11-й). Вопрос - как сделать этот запрос универсальным?
Завяжись на двенадцать месяцев 01-12.


Период времени может быть и больше 12 месяцев.
...
Рейтинг: 0 / 0
Вопро про pivot
    #39894321
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pastic,

Завяжись на N предыдущих месяцев до текущей даты.
...
Рейтинг: 0 / 0
Вопро про pivot
    #39894330
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо доводить до такого свою жизнь. РСУБД это немного не про key-value. Вытащи куда-нибудь все это наружу, да сделай что тебе надо. Подойдёт любой промышленный ЯП.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопро про pivot
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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