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

Упрощение запроса

19.12.2019, 14:04. Показов 1345. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день.
Имею БД с таблицами: "Заказ", "Процесс заказа", "Клиент", "Филиал", "Услуга".

Поля "Клиента" - Идентификатор(pk), ФИО, Критерий Постоянства.
Поля "Заказа" - Идентификатор(pk), Дата_приёма, Дата_Возврата, Идентификатор_Клиент(fk), Код_Филиал(fk).
Поля "Услуги" - ID(pk), Название, Тип, Стоимость, Длительность услуги, Скидка, Цена_за_срочность, Цена_за_сложность
Поля "Процесса заказа" - ID_Услуга(pk fk), Идентификатор_Заказ(pk fk), Срочность, Сложность
Поля "Филиала" - ID(pk), Название, Адрес.


Требуется сделать запрос из списка клиентов и количества услуг, которыми он пользовался. Услуг в заказе может быть несколько.

Сделал такой запрос:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
    "Идентификатор_Клиент", SUM("СУММА")
FROM
(SELECT
   "Заказ"."Идентификатор_Клиент",
   "Процесс заказа"."Идентификатор_Заказ",
   COUNT("ID_Услуга") AS "СУММА"
FROM
   "Заказ"
INNER JOIN "Процесс заказа" ON "Заказ"."Идентификатор" = "Процесс заказа"."Идентификатор_Заказ" GROUP BY "Идентификатор_Клиент", "Идентификатор_Заказ" ORDER BY "Идентификатор_Клиент", "Идентификатор_Заказ" ASC
 
) AS b GROUP BY "Идентификатор_Клиент";

Т.е. взял столбцы ИД Клиента из "Заказа" и склеил с ИД Заказа и суммой услуг в одном заказе из "Процесса Заказа". Потом я сделал выборку из этой таблицы и оставил ИД Клиента и сумму уже со всех заказов этого клиента.

Вопрос - можно ли упростить этот запрос и если да, то как?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2019, 14:04
Ответы с готовыми решениями:

Упрощение запроса
Добрый день. Есть две табл. В основной табл. хранится информация продаж, разделённые по уровням, во второй идёт расшифровка самих...

Упрощение цикла сортировки элементов массивов. Упрощение цикла поиска нужного элемента в массиве
Уверен, что данный код можно написать компактнее чем есть сейчас. /*Опишите, используя структуру, камеры хранения (номер, индекс...

Упрощение
Добрый вечер. При использовании функции подстановки у меня получился очень длинный и страшный результат. Есть ли в матлабе какая-нибудь...

1
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
19.12.2019, 22:52
Лучший ответ Сообщение было отмечено SamJa как решение

Решение

Зачем два раза группируете??
Вроде же и одной группировки достаточно.

SQL
1
2
3
4
5
6
7
8
SELECT
  "Клиент"."ФИО",
  COUNT("Процесс заказа"."ID_Услуга")
FROM
"Клиент" 
LEFT JOIN "Заказ" ON "Клиент"."Идентификатор"="Заказ"."Идентификатор_Клиент"
JOIN "Процесс заказа" ON "Заказ"."Идентификатор"="Процесс заказа"."Идентификатор_Заказ"
GROUP BY "Клиент"."ФИО"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2019, 22:52
Помогаю со студенческими работами здесь

Упрощение
На форме есть 33 кнопки , у всех примерно одна и таже процедура нажатия,которая вполне огромная может строк 50, только меняется...

упрощение
можно ли упростить данное условие? if($w=="test1" || $w=="tester" || $w=="for" || $w=="of" || $w=="if" || $w=="reset" ||...

Упрощение суммы
Можно ли как-то упростить вычисление суммы? Мне в голову кроме вынесения за скобки ничего не приходит: a(1+a(2+a(3+a(4+a(5+...))))) - но...

Упрощение СДНФ
Приветствую! Вот, в унвере дали решать булеву алебру, лекций толком не было, дали одни функции, я не пойму как их применять и упрощать ими...

Упрощение СДНФ
Помогите, пожалуйста, упростить функцию по законам, если можно, то с их названиями F=(!x1*!x2*x3)+(!x1+x2+!x3)+(x1*!x2*x3)+(x1*x2*x3) ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
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