powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Какую функцию использовать?
5 сообщений из 5, страница 1 из 1
Какую функцию использовать?
    #40098244
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть задача:
Напишите запрос, который при выполнении будет выводить название отдела и количество сотрудников, принятых за последние полгода в разбивке по меся-цам по столбцам, например:
Отдел Текущий месяц Месяц назад Два месяца назад …
Отдел разра-ботки 1 0 2 1



Таблица TEMPLOYEE (работники) содержит поля:
dfobj (идентификационный номер работника),
dffio (фио работника),
dfdepartment(идентификационный номер отдела),
dfsalary (оклад работника),
dfemp_date (дата приема на работу)

Таблица TDEPARTMENT (отделы) содержит поля:
dfobj (идентификационный номер отдела),
dfname(название отдела)

Подскажите, эта задача должна решаться с помощью оконных функций ROW_NUMBER, OVER_PARTITION? Или как проще решить?
...
Рейтинг: 0 / 0
Какую функцию использовать?
    #40098267
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd

Или как проще решить?


pivot

ps
c учетом что в месяце 28/29, 30, 31 день полгода понятие неточное
но для лабы может сойти months_between

.....
stax
...
Рейтинг: 0 / 0
Какую функцию использовать?
    #40098280
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd,

вот посмотрите, как я для этой таблицы
Код: plsql
1.
SELECT * FROM dba_objects;



... показываю число созданный объектов каждого типа по годам / месяцам
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
   t.object_type,
   EXTRACT(year FROM t.created) as creation_year,
   EXTRACT(month FROM t.created) as creation_month,
   count(*) as number_of_objects
FROM
   dba_objects t
GROUP BY
   t.object_type,
   EXTRACT(year FROM t.created),
   EXTRACT(month FROM t.created)
...
Рейтинг: 0 / 0
Какую функцию использовать?
    #40098282
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь следующая мысль: в вашей задаче аналогично, но для таблицы TEMPLOYEE (работники)
Правда, учитывая, что в ней нет поля dfname(название отдела), надо его будет прикрутить через джойн с таблицей TDEPARTMENT (отделы), и всё вместе уже в GROUP BY и SELECT разбивать на критерии
...
Рейтинг: 0 / 0
Какую функцию использовать?
    #40098288
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd

Таблица TEMPLOYEE (работники) содержит поля:
dfobj (идентификационный номер работника),
dffio (фио работника),
dfdepartment(идентификационный номер отдела),
dfsalary (оклад работника),
dfemp_date (дата приема на работу)

Таблица TDEPARTMENT (отделы) содержит поля:
dfobj (идентификационный номер отдела),
dfname(название отдела)

Зачем они такие извраты применяют для наименования таблиц и стобцов?
Мудряки, блин.

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


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