Реклама на сайте Advertise with us

Выбор парных значений в SQL

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 12.05.05
Сообщения: 121
Рейтинг: 43

Ссылка на сообщениеДобавлено: 16/07/06 в 10:13       Ответить с цитатойцитата 

Предположим, есть простая таблица:

id | Время добавления | А | В

Требуется:
Вычислить количество строк и одинаковыми значениями A и В, к примеру А=5 и В=7, после чего нужно найти количество строк, где А=7 и В=5 и соотвественно суммировать с первым результатом.
Тоесть находим количество строк по такому условию

(А=5 and B=7) or (A=7 and B=5)

Естевственно, значения A и В заранее неизвестны и нужно посчитать все имеющиеся в таблице пары.
Затем нужно узнать сколько записей, принадлежащих паре, лишиние. Тоесть установлен предел в 100 записей на пару, если же их больше, то удалить те, которые были сделаны первыми.

И проблема - все вот это в один запрос запихнуть. Если разбить на несколько запросов с промежуточной обработкой данных - все работает, но хочется сделать в один. И в догонку вопрос - если в один запрос реализовать (если получится конечно), не ляжет ли Sql, так как количество данных в таблице более 200.000 записей и количество возможных "пар" примерно 20000 (от 1 до 600-700 записей на "пару").

Хороший CJ скрипт - FET

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 16/07/06 в 10:27       Ответить с цитатойцитата 

GROUP BY + COUNT

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 



С нами с 12.05.05
Сообщения: 121
Рейтинг: 43

Ссылка на сообщениеДобавлено: 18/07/06 в 15:41       Ответить с цитатойцитата 

не работает. не то оно группирует.
Мне нужно сначала найти все пары значений, а потом посчитать количество строк где либо (A=N и B=M) или (B=M b A=N)
простая группировка выдает значения отдельно для каждой части условия, а нужно суммировать.

Хороший CJ скрипт - FET

0
 

БешаныйСуслег

С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338

Ссылка на сообщениеДобавлено: 18/07/06 в 18:08       Ответить с цитатойцитата 

Выбрать во временную таблицу либо в память и обработать.
По другому вроде никак.

0
 



С нами с 05.04.06
Сообщения: 36
Рейтинг: 20

Ссылка на сообщениеДобавлено: 19/07/06 в 07:56       Ответить с цитатойцитата 

Вот решение:
SELECT A, B, COUNT(*) FROM test GROUP BY A+B, IF(A < B, A, B);

http://artsoft.biz - web development service

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »