Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Запрос на количество сочетаний  [new]
VistaSV30
Member

Откуда: Балашиха
Сообщений: 119
Добрый день!

Даны числа:
a1, a2, ..., an
b1, b2, ..., bn

Нужно получить все сочетания чисел a и b, например: a1,b1; a1,b2; a1,b3 ...

Раньше делал это в Экселе, но сейчас количество пар чисел больше 100 тыс. и все пары просто не умещаются на листе.

Подскажите как составить запрос, чтоб получить то, как показано в прилагаемом файле.

Спасибо!

К сообщению приложен файл (Сочетания.rar - 16Kb) cкачать
9 янв 19, 16:50    [21780805]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
VistaSV30, смотри CROSS JOIN в Join (SQL)
9 янв 19, 17:18    [21780856]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
VistaSV30
Раньше делал это в Экселе, но сейчас количество пар чисел больше 100 тыс. и все пары просто не умещаются на листе.
А в строку и не получится в Access тем более - ограничение на количество полей 255
9 янв 19, 17:19    [21780858]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 4855
VistaSV30,

что нить типа:

SELECT DISTINCTROW n1, n2
FROM a,b
9 янв 19, 17:21    [21780861]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
VistaSV30
Раньше делал это в Экселе, но сейчас количество пар чисел больше 100 тыс. и все пары просто не умещаются на листе.
а если в столбик в Excel, то в новом формате должно входитить

Общее количество строк и столбцов на листе

1 048 576 строк и 16 384 столбца
9 янв 19, 17:24    [21780867]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Озверин
VistaSV30,

что нить типа:

SELECT DISTINCTROW n1, n2
FROM a,b
Зачем?
9 янв 19, 17:25    [21780869]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 4855
Панург
Озверин
VistaSV30,

что нить типа:

SELECT DISTINCTROW n1, n2
FROM a,b
Зачем?


мало ли какие исходные данные, а так сочетания получаться хоть уникальными.
9 янв 19, 17:28    [21780874]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Озверин, оно по определению будет уникальным, а предикат притормозит...
9 янв 19, 17:30    [21780877]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
VistaSV30
Member

Откуда: Балашиха
Сообщений: 119
Панург, тут получается матрица 100 000 х 100 000, а если все сделать в один столбик, то получается 10 млрд строк.

Друзья, если не сложно - помогите написать запрос.
9 янв 19, 18:52    [21780968]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
VistaSV30, лично я не понял что конкретно ты хочешь. Access не работает с произвольным количеством полей.
В примере муть, если хочешь получить все сочетания всех полей, то так никто не делает. В лучшем случае ты можешь получить свои 10 млрд. строк. Но к старости.
9 янв 19, 19:41    [21780999]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
VistaSV30
Member

Откуда: Балашиха
Сообщений: 119
Панург, задача у меня такая.
Даны 103620 точек с географическими координатами, мне нужно посчитать расстояние между всеми данными точками. Всего уникальных связей между точками будет 5368500390 - очень много.

По приведенному выше примеру я сделал такой запрос:
SELECT тблДано.Поле1, тблДано_1.Поле2
FROM тблДано, тблДано AS тблДано_1;


Хотя он работает, но мне не нравится. Мне кажется, что в SQL должен быть другой более красивый и эффективный способ решения задачи.

К сообщению приложен файл (Сочетания.rar - 16Kb) cкачать
9 янв 19, 21:16    [21781044]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
VistaSV30
Хотя он работает, но мне не нравится. Мне кажется, что в SQL должен быть другой более красивый и эффективный способ решения задачи.
Мне не известен другой "более красивый и эффективный" способ решения задачи. Не так часто нужно получать подобно соединение.
Чем конкретно не устраивает данный вариант?
10 янв 19, 03:56    [21781170]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Могу добавить, пожалуй это самый быстрый способ.
Для расчётов я бы сначала зафиксировал результаты работы запросов в виде таблицы и в неё бы считал (не в запросе). Иначе это всё превратится в очень длительный процесс.
Кстати, я не уверен что Access вытянет такое, есть ограничение на размер файла - 2 Гб.
10 янв 19, 04:09    [21781172]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5604
VistaSV30
Панург, задача у меня такая.
Даны 103620 точек с географическими координатами, мне нужно посчитать расстояние между всеми данными точками....
1.Расстояние между точками,по прямой (на практике так не бывает),рассчитывается по формуле (в какого монстра превратилась бы карта России для Navitel,если бы все расстояния хранились в ней)
2.Не считаю Access подходящим инструментом для решения Вашей задачи
3.Любая навигационная программа решает эту задачу на раз-два. Считаю что надо думать о том как её использовать из Access,а не изобретать велосипед
10 янв 19, 11:48    [21781385]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
VistaSV30
Member

Откуда: Балашиха
Сообщений: 119
sdku, да расстояния у меня конечно же рассчитываются по ортодромии, а в Access я хотел подготовить данные для построения графа. Географические точки с координатами - это координаты природных пожаров за 2018 год.
Задача оценить распределение точек по территории России, плотности распределения и т.д.
10 янв 19, 11:56    [21781399]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5604
или этот калькулятор
10 янв 19, 12:07    [21781409]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
VistaSV30
Member

Откуда: Балашиха
Сообщений: 119
sdku, формулы для определения расстояний по поверхности Земли у меня есть. Проблема пока с построением графа
10 янв 19, 12:10    [21781411]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
VistaSV30
sdku, да расстояния у меня конечно же рассчитываются по ортодромии, а в Access я хотел подготовить данные для построения графа. Географические точки с координатами - это координаты природных пожаров за 2018 год.
Задача оценить распределение точек по территории России, плотности распределения и т.д.
Для этого есть специальные программы с геостатистикой - ArcGIS, Surfer и др.
10 янв 19, 12:34    [21781445]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5604
VistaSV30,
а набрать в поисковике строку "отображение на карте точки по её координатам" и просмотреть варианты религия не позволяет?
(кстати это совсем не то,о чем Вы спрашиваете. Народная мудрость:-Все не так просто как кажется)
10 янв 19, 12:38    [21781450]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
VistaSV30
Member

Откуда: Балашиха
Сообщений: 119
sdku, спасибо за подсказку. Это как обычно в запарке получается. В прошлом году было всего 7 тыс. точек и в этом решил по прошлогоднему сделать.
Сейчас будем осваивать новые технологии
10 янв 19, 12:41    [21781456]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5604
VistaSV30,
тынц
10 янв 19, 12:45    [21781465]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5604
и это
10 янв 19, 12:52    [21781483]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на количество сочетаний  [new]
VistaSV30
Member

Откуда: Балашиха
Сообщений: 119
sdku, спасибо!

Сохранил у себя в закладках.

Поздравляю с прошедшими и предстоящими староновогодними праздниками!
10 янв 19, 13:12    [21781528]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить