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

SELECT Продуктов с одинаковыми ингредиентами

08.10.2015, 08:45. Показов 1440. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажи пожалуйста как выбрать продукты с одинаковым составом, для следующей таблицы.
Получается нужно применить коррелированный подзапрос, посчитав количество ингридиентов, для каждого блюда и сравнив их, в sql новичок, нехватает смекалки для запроса такой сложности пытался сравнивать 2 копии таблицы но не понимаю как посчитать количество блюд 1 и 2 таблицы для каждого блюда
Миниатюры
SELECT Продуктов с одинаковыми ингредиентами   SELECT Продуктов с одинаковыми ингредиентами  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2015, 08:45
Ответы с готовыми решениями:

Из колоды 52-ух карт надо выбрать 2 карты с одинаковыми номерами и ещё 3 карты с одинаковыми но другуми номерами
Сколькими способами из колоды в 52 карты можно выбрать 2 с одинаковыми номерами и 3 с другими одинаковыми между собой номерами?

Как отображать определенные данные в <select> в зависимости от значений в другом <select>?
Здравствуйте! У меня на страницу есть два &lt;select&gt;. В каждом из них располагаются даты в формате dd.mm.yyyy. &lt;select...

Сохранение значения select и работоспособность второго select после отправки формы
Добрый вечер!Есть проблемка-не могу сохранить значение селекта,сохранив работоспособность др.селектов после отправки формы....страну...

4
3 / 3 / 1
Регистрация: 07.10.2015
Сообщений: 14
08.10.2015, 12:15
Попробуй через группировку GROUP BY и под запросы.
1
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
08.10.2015, 15:53
а для подзапросов и GROUP BY придумайте какую-нибудь хэш-функция, которая бы давала уникальный результат для ингредиентов в виде одного значения (можно string_agg применить). Тогда можно будет сравнить хэш-значения как будто вы сравниваете все ингредиенты целиком. Соответсвенно по этом критерию дальше отбирать.
1
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 51
09.10.2015, 13:09  [ТС]
В результате работы получился подобный говнокод, предполагаю что решение далеко не идеально, если не лень, подскажите пожалуйста как это оптимизировать.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT  FIRST.num_dish, FIRST.num_ingridient
FROM dish_composition FIRST, dish_composition SECOND
WHERE FIRST.num_dish != SECOND.num_dish
 
AND FIRST.num_ingridient = SECOND.num_ingridient
 
AND    
    (SELECT  COUNT(*)
    FROM dish_composition
    WHERE FIRST.num_dish = dish_composition.num_dish
    GROUP BY num_dish) =
 
    (SELECT  COUNT(*)
    FROM dish_composition
    WHERE SECOND.num_dish = dish_composition.num_dish
    GROUP BY num_dish) 
 
GROUP BY FIRST.num_dish, FIRST.num_ingridient
ORDER BY 1
0
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
09.10.2015, 14:08
Лучший ответ Сообщение было отмечено mogtar как решение

Решение

Вот на коленках не особо задумываясь о скорости выполнения
SQL
1
2
3
4
5
6
SELECT num_dish FROM
(SELECT num_dish, COUNT(*) OVER (partition BY dish_ingridients) AS cnt FROM
(SELECT num_dish, string_agg(num_ingridient::text, '-' ORDER BY num_ingridient) AS dish_ingridients 
FROM dish_composition GROUP BY num_dish) ingr_group
) ingr_group_same
WHERE cnt > 1;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.10.2015, 14:08
Помогаю со студенческими работами здесь

Сохранение значения select и работоспособность второго select после отправки формы
Добрый вечер!Есть проблемка-не могу сохранить значение селекта,сохранив работоспособность др.селектов после отправки формы....страну...

Как при изменении одного <select> подгрузить в другой <select> данные...
Как при изменении одного &lt;select&gt; подгрузить в другой &lt;select&gt; данные... пример: с марками машин. При выборе 'TOYOTA'...

Как изменить значение одного select-а при изменении другого select-а?
Добрый день! Подскажите как изменить значение select при изменении другого select. первый: &lt;select id=&quot;options&quot;&gt; ...

При выборе элемента в <select> менять содержимое другого <select>
Может кто-то подсказать. У меня есть select на форме. Например: &lt;select name=day_s size=1&gt; &lt;option value=1&gt; Понедельник &lt;/...

Изменение данных одного select при изменении другого select
нужно что бы выбирая одну группу менялись данные в &quot;номере по журналу&quot; не понимаю как это сделать помогите &lt;?php ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru