Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
7 / 7 / 1
Регистрация: 07.11.2017
Сообщений: 86

Комбинации и запросе

07.12.2017, 06:12. Показов 1748. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане!
Есть таблица вида:
Москва - Тверь - 10000
Москва - Питер - 20000
Питер - Тверь - 5000
Саратов - Барнаул - 5000
и так далее.
Количество записей более 1000, а количество городов более 300.
Не могу составить запрос, который бы создавал выборку где присутствуют как минимум два нами города, при этом выводилась бы только одна запись, самая низкая по третьему столбцу (цена).
Например при запросе этой команды с городами Москва, Питер, мы бы получили только 2 записи:
Москва - Питер - (самая низкая цена)
Питер - Москва - (самая низкая цена)

При запросе с одним городом база бы искала вариант вроде этого:
Москва - Москва - (самая низкая цена)
но т.к. такой записи не существует, очевидно, то результат был бы нулевым.

При запросе четырех городов мы бы получали <16 записей (возможные комбинации), где опять же город А - город Б может иметь только одну запись.

Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2017, 06:12
Ответы с готовыми решениями:

Найти в строке все комбинации из сдвоенных букв и удалить вторую букву в каждой комбинации
2. Найти в строке все комбинации из сдвоенных букв и удалить вторую букву в каждой комбинации.

Заменить в заданном слове комбинации 1011 на комбинации 1101
Дано задание: Заменить в заданном слове комбинации 1011 на комбинации 1101 Я попытался его сделать так, но в итоге получаю некорректный...

Как отсортировать сразу же в запросе, по столбцу который в том же запросе и создаётся?
Дан запрос: SELECT .ФИО, .Группа, Отметки., Отметки.Полугодие, AVG(Отметки.Отметка) AS FROM, Отметки WHERE . = Отметки. AND...

22
7 / 7 / 1
Регистрация: 07.11.2017
Сообщений: 86
11.12.2017, 11:12  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от AGK Посмотреть сообщение
Прошу три раза БЕЗ КОММЕНТАРИЕВ вывести мне ТОЛЬКО те записи, которые должны быть возвращены запросом в каждом из трех случаев
Если вы сначала добавляете запись 1, потом еще одну дополнительную 2, затем 3, то во всех трех вариантах получится:
(id 1, 1, 2, 20000)
(id 17, 2, 1, 19000)
(id 2, 2, 3, 30000)
Если же вы добавляете либо 1, либо 2, либо 3, то получится:
Для добавленной записи 1 (записи 2, 3 отсутствуют):
(id 1, 1, 2, 20000)
(id 17, 2, 1, 19000)
(id 2, 2, 3, 30000)
Для добавленной записи 2 (записи 1, 3 отсутствуют):
(id 1, 1, 2, 20000)
(id 17, 2, 1, 20000)
(id 2, 2, 3, 30000)
Для добавленной записи 3 (записи 1, 2 отсутствуют):
(id 1, 1, 2, 20000)
(id 17, 2, 1, 21000)
(id 2, 2, 3, 30000)
1
765 / 666 / 194
Регистрация: 24.11.2015
Сообщений: 2,163
11.12.2017, 11:44
Лучший ответ Сообщение было отмечено dmake как решение

Решение

Спасибо, наконец-то до меня дошло. Очень туго доходило.

SQL
1
2
3
4
5
SELECT town1, town2, MIN(price) price_min
FROM tab
WHERE town1 IN (var1, var2, var3, var4, var5, var6, var7, var8)
AND town2 IN (var1, var2, var3, var4, var5, var6, var7, var8)
GROUP BY town1, town2
Это почти то же самое, что Вы писали в Вашем посте, но можно использовать классический GROUP BY без "мускульных" наворотов. Все оказалось гораздо проще, чем я думал вначале.

Единственное, что еще хотел бы заметить, что упорядоченность, все-таки, играет роль, поскольку комбинации 1-2 и 2-1 - это разные комбинации, и по каждой из них ищется свой минимум
1
7 / 7 / 1
Регистрация: 07.11.2017
Сообщений: 86
11.12.2017, 11:50  [ТС]
Цитата Сообщение от AGK Посмотреть сообщение
Это почти то же самое, что Вы писали в Вашем посте, но можно использовать классический GROUP BY без "мускульных" наворотов. Все оказалось гораздо проще, чем я думал вначале.
А я кажется на бутылку только что налип .
К новому году должен кое что доделать, успеваю - напишу в личку)
Работает как часы, спасибо!

Добавлено через 59 секунд
Цитата Сообщение от AGK Посмотреть сообщение
Единственное, что еще хотел бы заметить, что упорядоченность, все-таки, играет роль, поскольку комбинации 1-2 и 2-1 - это разные комбинации, и по каждой из них ищется свой минимум
Это нормально, к тому же этим в дальнейшем занимается программный модуль.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.12.2017, 11:50

Комбинации
Есть массив string {abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIGKLMNOPQRSTUVWXYZ}. В нем содержатся вот эти символы. Вопрос: каким...

Комбинации
Здраствуйте форумчани. Столкнулся с проблемой что немогу решить головоломку. Допустим у нас есть строка символ AAB. В результате программа...

Комбинации
Доброго времени суток. Прошу помощи. Даются числа, которые мы вводим произвольно: 2, 5, 50, 11, 3, 7 и т.д. Необходимо получить ответ в...

Комбинации
package combinations.of.summ; import java.util.Scanner; public class CombinationsOfSumm { static int a = new int; static...

Комбинации
Всем привет! Есть массив array, в переменной s хранится его размер. Нужно написать прогу, которая выведет на экран все возможные...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru