Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопро про pivot / 5 сообщений из 5, страница 1 из 1
26.11.2019, 11:08
    #39894311
Pastic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопро про pivot
Есть такой набор данных:
Код: 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
26.11.2019, 11:11
    #39894314
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопро про pivot
Pastic
Но этот запрос не является универсальным, поскольку жёстко настроен на конкретный набор месяцев (с 7-го по 11-й). Вопрос - как сделать этот запрос универсальным?
Завяжись на двенадцать месяцев 01-12.
...
Рейтинг: 0 / 0
26.11.2019, 11:15
    #39894318
Pastic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопро про pivot
-2-
Pastic
Но этот запрос не является универсальным, поскольку жёстко настроен на конкретный набор месяцев (с 7-го по 11-й). Вопрос - как сделать этот запрос универсальным?
Завяжись на двенадцать месяцев 01-12.


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

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


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