русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Практическое занятие 4


Дата добавления: 2015-08-31; просмотров: 8644; Нарушение авторских прав


  • Использование групповых функций
  • Вывод данных по группам с помощью предложения GROUPBY
  • Включение и исключение групп с помощью предложения HAVING
  1. Напишите запрос для вывода самого высокого, самого низкого и среднего оклада по всем служащим, а также суммы всех окладов. Назовите столбцы Maximum, Minimum, Average и Sum. Округлите средний оклад до ближайшего целого значения. Сохраните свой запрос в файле lab5_6.sql.
Maximum Minimum Sum Average

select max(salary) "Maximum", min(salary) "Minimum", sum(salary) "Sum", round(avg(salary)) "Average" from employees;

Maximum Minimum Sum Average

 

  1. Измените запрос в lab5_6.sql. так, чтобы получить самый низкий, самый высокий и средний оклады, а также сумму окладов по каждой должности. Сохраните изменённый запрос в файле lab5_5.sql. Выполните запрос из lab5_5.sql.
JOB_ID Maximum Minimum Sum Average
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES
AD_VP

…………….

select job_id, max(salary) "Maximum", min(salary) "Minimum", sum(salary) "Sum", round(avg(salary)) "Average"

from employees group by job_id;

JOB_ID Maximum Minimum Sum Average
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES
AD_VP
FI_ACCOUNT
FI_MGR
HR_REP
IT_PROG
MK_MAN
MK_REP
PR_REP
PU_CLERK
PU_MAN
SA_MAN
SA_REP
SH_CLERK
ST_CLERK
ST_MAN

 



  1. Напишите запрос для вывода должности и количества служащих, занимающих каждую должность.
JOB_ID CNT
AD_ACCOUNT
AC_MGR
AD_ASST
AD_PRES
AD_VP
IT_PROG
MK_MAN
MK_REP
SA_MAN
SA_REP
ST_CLERK
ST_MAN

select job_id, count(employee_id) CNT

from employees group by job_id;

JOB_ID CNT
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES
AD_VP
FI_ACCOUNT
FI_MGR
HR_REP
IT_PROG
MK_MAN
MK_REP
PR_REP
PU_CLERK
PU_MAN
SA_MAN
SA_REP
SH_CLERK
ST_CLERK
ST_MAN

 

  1. Получите количество служащих, имеющих подчинённых, без их перечисления. Назовите столбец NumberofManagers. Используйте столбец MANAGER_ID для определения числа менеджеров.
Number of Managers

select count(distinct(manager_id)) "Number of Managers" from employees;

Number of Managers

 

  1. Напишите запрос для вывода разности между самым высоким и самым низким окладами. Назовите столбец DIFFERENCE
DIFFERENCE

select max(salary)-min(salary) "DIFFERENCE" from employees;

DIFFERENCE

 

  1. Напишите запрос для вывода номера каждого менеджера, имеющего подчинённых, и заработную плату самого низкооплачиваемого из его подчинённых. Исключите менеджеров для которых неизвестны их менеджеры. Исключите все группы, где минимальный оклад составляет менее $6000. Отсортируйте выходные строки в порядке убывания оклада.
MANAGER_ID MIN_SALARY

 

select MANAGER_ID, min(salary) "MIN_SALARY" from employees where manager_id is not null group by MANAGER_ID

having min(salary)>=6000

order by "MIN_SALARY" desc;

 

MANAGER_ID MIN_SALARY

 

9 rows selected

 

  1. Напишите запрос для вывода общего количества служащих и количества служащих, нанятых в 2005, 2006, 2007 и 2008 годах. Дайте соответствующие заголовки столбцам.
TOTAL

select

count(employee_id) TOTAL,

count(decode(to_char(hire_date,'YYYY'),'2005',2005)) "2005",

count(decode(to_char(hire_date,'YYYY'),'2006',2006)) "2006",

count(decode(to_char(hire_date,'YYYY'),'2007',2007)) "2007",

count(decode(to_char(hire_date,'YYYY'),'2008',2008)) "2008"

from employees;

TOTAL

 

  1. Напишите матричный запрос для вывода всех должностей и суммы заработной платы служащих, работающих в этой должности в отделах 20, 50, 80 и 90. Последний столбец должен содержать сумму заработной платы служащих этих отделов, занимающих каждую конкретную должность. Дайте столбцам соответствующие заголовки.
Job Dept20 Dept50 Dept80 Dept90 Total
AC_ACCOUNT    
AC_MGR    
AD_ASST      
AD_PRES      
AD_VP      
IT_PROG    

……………………………

select job_id "Job",

nvl(sum(decode(department_id,20,salary)),0) "Dept20",

nvl(sum(decode(department_id,50,salary)),0) "Dept50",

nvl(sum(decode(department_id,80,salary)),0) "Dept80",

nvl(sum(decode(department_id,90,salary)),0) "Dept90",

nvl(sum(decode(department_id,20,salary)),0)+nvl(sum(decode(department_id,50,salary)),0)+nvl(sum(decode(department_id,80,salary)),0)+

nvl(sum(decode(department_id,90,salary)),0) "Total" from employees group by job_id;

Job Dept20 Dept50 Dept80 Dept90 Total
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES
AD_VP
FI_ACCOUNT
FI_MGR
HR_REP
IT_PROG
MK_MAN
MK_REP
PR_REP
PU_CLERK
PU_MAN
SA_MAN
SA_REP
SH_CLERK
ST_CLERK
ST_MAN

 

 

19 rows selected

 

Индивидуальное задание:

1.7. В названии отдела вывести только второе слово, если

название состоит из двух или более слов. Иначевывестипервое

слово.

select DEPARTMENT_NAME,

case instr(department_name,' ')

when 0 then department_name

else substr( substr(department_name,(instr(department_name,' '))+1, length(department_name))||' ', 1, instr(substr(department_name,(instr(department_name,' '))+1, length(department_name))||' ', ' '))

end result from departments;

 

DEPARTMENT_NAME RESULT
Administration Administration
Marketing Marketing
Purchasing Purchasing
Human Resources Resources
Shipping Shipping
IT IT
Public Relations Relations
Sales Sales
Executive Executive
Finance Finance
Accounting Accounting
Treasury Treasury
Corporate Tax Tax
Control And Credit And
Shareholder Services Services
Benefits Benefits
Manufacturing Manufacturing
Construction Construction
Contracting Contracting
Operations Operations
IT Support Support
NOC NOC
IT Helpdesk Helpdesk
Government Sales Sales
Retail Sales Sales
Recruiting Recruiting
Payroll Payroll

 



<== предыдущая лекция | следующая лекция ==>
Практическоезанятие 3, часть 2 | Практическое занятие 5


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.089 сек.