Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.03.2021
Сообщений: 4

Написать 3 сложных запроса

03.12.2021, 11:44. Показов 555. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть БД:
SQL
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
CREATE TABLE cabinet
(
    id_cabinet INT PRIMARY KEY,
    area INT NOT NULL
);
 
CREATE TABLE doctor
(
    id_pib INT PRIMARY KEY,
    speciality VARCHAR(50) NOT NULL,
    surname VARCHAR(100) NOT NULL,
    id_cabinet INT NOT NULL,
    FOREIGN KEY (id_cabinet) REFERENCES cabinet(id_cabinet)
);
 
CREATE TABLE nurse
(
    id_pib INT PRIMARY KEY,
    pib VARCHAR(255) NOT NULL,
    work_exp INT NOT NULL,
    fk_nurse_doc INT REFERENCES doctor(id_pib)
);
 
CREATE TABLE patient
(
    id_patient INT PRIMARY KEY,
    age INT NOT NULL DEFAULT 1,
    sex VARCHAR(6) NOT NULL,
    disease VARCHAR(100) NOT NULL
);
 
CREATE TABLE doctor_patient
(
    date_time TIMESTAMP NOT NULL, 
    id_doc INT REFERENCES doctor(id_pib),
    id_pat INT REFERENCES patient(id_patient),
    CONSTRAINT pk_doctor_patient PRIMARY KEY (id_doc, id_pat)
);
 
INSERT INTO cabinet(id_cabinet, area) VALUES (1, 12);
INSERT INTO cabinet(id_cabinet, area) VALUES (2, 10);
INSERT INTO cabinet(id_cabinet, area) VALUES (3, 8);
 
INSERT INTO doctor(id_pib, speciality, surname, id_cabinet) VALUES (1, 'surgery', 'Vacovskiy', 1);
INSERT INTO doctor(id_pib, speciality, surname, id_cabinet) VALUES (2, 'neurology', 'Obama', 1);
INSERT INTO doctor(id_pib, speciality, surname, id_cabinet) VALUES (3, 'dermatology', 'Atano', 2);
INSERT INTO doctor(id_pib, speciality, surname, id_cabinet) VALUES (4, 'pediatrics', 'Yeager', 1);
INSERT INTO doctor(id_pib, speciality, surname, id_cabinet) VALUES (5, 'surgery', 'Reeves', 2);
INSERT INTO doctor(id_pib, speciality, surname, id_cabinet) VALUES (6, 'psychiatry', 'Pines', 3);
 
INSERT INTO nurse(id_pib, pib, work_exp, fk_nurse_doc) VALUES (1, 'B.G.A.', 5, 1);
INSERT INTO nurse(id_pib, pib, work_exp, fk_nurse_doc) VALUES (2, 'J.L.B.', 7, 2);
INSERT INTO nurse(id_pib, pib, work_exp, fk_nurse_doc) VALUES (3, 'R.O.A.', 2, 3);
INSERT INTO nurse(id_pib, pib, work_exp, fk_nurse_doc) VALUES (4, 'S.T.J.', 10, 4);
INSERT INTO nurse(id_pib, pib, work_exp, fk_nurse_doc) VALUES (5, 'V.C.K.', 6, 5);
INSERT INTO nurse(id_pib, pib, work_exp, fk_nurse_doc) VALUES (6, 'M.H.F.', 4, 6);
 
INSERT INTO patient(id_patient, age, sex, disease) VALUES (1, 19, 'male', 'flu');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (2, 24, 'female', 'diabetes');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (3, 36, 'male', 'alergy');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (4, 27, 'female', 'COVID-19');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (5, 50, 'female', 'typhus');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (6, 42, 'male', 'cerebrovascular disease');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (7, 33, 'female', 'tuberculosis');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (8, 21, 'male', 'chickenpox');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (9, 23, 'male', 'flu');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (10, 32, 'female', 'diabetes');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (11, 40, 'male', 'alergy');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (12, 62, 'female', 'COVID-19');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (13, 54, 'female', 'typhus');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (14, 37, 'male', 'cerebrovascular disease');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (15, 20, 'female', 'tuberculosis');
INSERT INTO patient(id_patient, age, sex, disease) VALUES (16, 17, 'male', 'chickenpox');
 
 
INSERT INTO doctor_patient(date_time, id_doc, id_pat) 
VALUES ('2021-06-01 08:15:00', 1, 2), ('2021-06-01 09:10:00', 1, 3), 
('2021-06-03 10:00:00', 2, 1), ('2021-06-03 12:00:00', 3, 4),
('2021-06-04 07:45:00', 4, 6), ('2021-06-06 11:30:00', 5, 5),
('2021-06-07 07:15:00', 5, 7), ('2021-06-09 16:00:00', 6, 8),
('2021-06-07 08:15:00', 1, 9), ('2021-06-01 09:45:00', 6, 10), 
('2021-06-03 10:45:00', 2, 11), ('2021-06-01 12:00:00', 3, 12),
('2021-06-01 09:50:00', 4, 13), ('2021-06-06 13:30:00', 5, 14),
('2021-06-04 10:00:00', 5, 15), ('2021-06-09 15:00:00', 6, 16);
И для нее нужно написать следующие запросы:

1) По каждому дню регистрации установить врача, к которому записалось максимальное количество пациентов.

2) Найти всех пациентов, которые посещали врача в тот же день, что и пациент «А».

3) Определить, сколько раз каждый врач принимал каждого пациента.

Сам сидел несколько часов и все в пустую, только начал учить SQL, надеюсь кто нибудь поможет, заранее Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2021, 11:44
Ответы с готовыми решениями:

2 сложных запроса
Помогите с 2 запросами, недавно начал изучать SQL. Написать SQL-запрос, возвращающий список заказчиков, которые сделали менее трех...

В MS Access выполнить 3 сложных запроса по подсчетам
Состав базы данных "Успешность" - таблицы: "Сессия", "Справочник факультетов", "Справочник специальностей", "Справочник...

Выполнить 3 сложных запроса по подсчетам
Создал БД "Кулинария". В БД рассмотрены следующие сущности: Блюдо: категория блюда (первое, второе, гарнир, десерт, и т.д.),...

4
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
03.12.2021, 11:53
Если только начал зачем сложные? Научись сначала простые. А если кто-то поможет-напишет-за-тебя толку 0, а может и меньше )
0
0 / 0 / 0
Регистрация: 30.03.2021
Сообщений: 4
03.12.2021, 11:54  [ТС]
Простые то я без проблем написал, а вот со сложными проблема.
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
03.12.2021, 12:52
Ну ладно. Вот первый
SQL
1
2
3
4
5
6
7
SELECT v.id_pib,v.date_,v.CountMax
  FROM (SELECT u.*,MAX(u.CountRec) OVER (PARTITION BY u.date_) AS CountMax
          FROM (SELECT d.id_pib,date_trunc('day',dp.date_time) AS date_,COUNT(dp.id_pat) AS CountRec
                  FROM doctor d JOIN doctor_patient dp ON dp.id_doc=d.id_pib
                  GROUP BY d.id_pib,date_trunc('day',dp.date_time)) u) v
  WHERE v.CountRec=v.CountMax
  ORDER BY v.date_
по некоторым дням будет несколько записей, поскольку максимальное количество пациентов у нескольких врачей. Много это тебе дало?
1
0 / 0 / 0
Регистрация: 30.03.2021
Сообщений: 4
03.12.2021, 13:02  [ТС]
На самом деле много, так как найти нужные примеры в инете очень сложно, а так я наглядно вижу что я должен был сделать. Чесно говоря, когда изучал 3D моделирование(к примеру), то все делал по видосам(то есть по уже готовому варианту) и в итоге научился неплохо делать сам. Спасибо за проделанную работу!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2021, 13:02
Помогаю со студенческими работами здесь

Написать программу для решения сложных выражений.
Написать программу для решения выражений. http://s004.***********/i205/1002/6e/2bd2fa636b69.jpg помогите, завтра сдавать, а у нас...

Написать программу, создающую анимацию сложных изображений методом базовой точки.
Помогите решить пожалуйста по делфи задачу: Написать программу, создающую анимацию сложных изображений методом базовой точки. ...

Как написать эти программы?Без всяких заморочек и сложных программ. Заранее спасибо)

Написать 2 первых запроса
как написать 2 первых запроса вот моя бд.

Написать 2 простых запроса
Пожалуйста, помогите написать 2 запроса (для зачета только их не хватает) 1) Вывести постоянных клиентов 2) Вывести самую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru