Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 21:08   #1
Нуреке
 
Регистрация: 11.06.2009
Сообщений: 7
По умолчанию нужен Select - нужно найти в поле A все повторяющиеся строки

Всем привет!!!!
очень нужна ваша помошь!!!
думал целый день но ничего не получается
ситуация такая
имеется таблица XXXXXXXXXX в ней два поля A и B
нужно найти в поле A все повторяющиеся строки
и в этих повторяющихся строка по полю B найти различные друг от друга строки
результат примерно должен быть таков

изначальная таблица
А | B
-----------
1 | 2
1 | 2
1 | 2
1 | 3
2 | 2
2 | 3
2 | 3
3 | 2
4 | 2

конечная таблица после select-а
А | B
-----------
1 | 2
1 | 3
2 | 2
2 | 3

очень надеюсь на вашу помошь!!!!
Нуреке вне форума
Старый 11.06.2009, 21:14   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию апшибся

Код:
select a, b from XXXXXXXXXX Group By a,b
?
описАлся , исправил

Последний раз редактировалось vovk; 11.06.2009 в 21:21. Причина: апшибся
vovk вне форума
Старый 12.06.2009, 07:09   #3
Нуреке
 
Регистрация: 11.06.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Код:
select a, b from XXXXXXXXXX Group By a,b
этим он просто сгрупперует все данные, желаемого результата не получится
Нуреке вне форума
Старый 12.06.2009, 08:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
этим он просто сгрупперует все данные, желаемого результата не получится
понял. Вам нужны ТОЛЬКО те строчки, где A повторяется более одного раза.

тогда так:
Код:
select a,b from t1 group by a,b 
  where a in 
     (select a from t1 group by a having count(a)>1)

Последний раз редактировалось Serge_Bliznykov; 12.06.2009 в 08:34.
Serge_Bliznykov вне форума
Старый 12.06.2009, 08:30   #5
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Код:
select distinct a, b
from XXXXXXXXXX
 where a in (
              select a
                from XXXXXXXXXX
             group by a
              having count ( a ) > 1
            )
Сергей, вариант предложенный vovk выдает еще 2 строки [3,2 ; 4,2], которые автору топика не нужны. Но эти 2 строки не повторяются по полю А.

Вот блин, пока писал предыдущее сообщение, вы уже успели опубликовать свой вариант. Ну вообщем, разобрались.

Последний раз редактировалось Stilet; 14.12.2009 в 10:25.
edgy вне форума
Старый 12.06.2009, 08:42   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

edgy, да. спасибо. Я уже исправил текст своего сообщения (я чуть раньше заметил отличие - после того как сравнил результаты простого селекта с group by с тем, что ожидал автор вопроса. Потом перечитал вопрос и понял насчёт повторов по полю A.
Serge_Bliznykov вне форума
Старый 12.06.2009, 09:16   #7
Нуреке
 
Регистрация: 11.06.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от edgy Посмотреть сообщение
Код:
select distinct a, b
from XXXXXXXXXX
 where a in (
              select a
                from XXXXXXXXXX
             group by a
              having count ( a ) > 1
            )
выберет все повторяющиеся записи по полю А
но еще нужно по полю В выбрать те записи которые не повторяются
Нуреке вне форума
Старый 12.06.2009, 09:28   #8
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Цитата:
Сообщение от Нуреке Посмотреть сообщение
выберет все повторяющиеся записи по полю А
но еще нужно по полю В выбрать те записи которые не повторяются
Только что проверил свой запрос на MS SQL Server. Вбил ваши данные (первая таблица). Выполнил запрос. Получил точно такую же выборку, какую вы привели во второй таблице.

А у вас что выводит?
edgy вне форума
Старый 12.06.2009, 10:46   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я свой запрос тоже проверил. Выводит то, что привёл автор вопроса в качестве желаемого результата!

Цитата:
Сообщение от edgy
А у вас что выводит?
Коллега, я думаю, что автор вопроса вообще не проверяет запрос на практике! Он его теотерически ("на глазок") выполняет..
Serge_Bliznykov вне форума
Старый 12.06.2009, 15:43   #10
Нуреке
 
Регистрация: 11.06.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Коллега, я думаю, что автор вопроса вообще не проверяет запрос на практике! Он его теотерически ("на глазок") выполняет..
зачем же сразу критиковать автора(т.е. меня)
я его пытаюсь применить, дело в том, что в таблице не одна тысяча записей а несколько миллионов и подключены к ней в данный момент тысячи пользователей, проверить запрос получится только после работы

все же большое спасибо Вам, что не оставили мой вопрос без ответа!!!!
Нуреке вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторяющиеся строки в таблице Talemir БД в Delphi 2 20.08.2009 23:07
После ввода в поле по Enter нужно перейти на другое поле! •ScReam•™ Помощь студентам 2 16.06.2009 08:47
повторяющиеся строки ShenDy Общие вопросы C/C++ 4 27.03.2008 08:52
Удалить из массива(одномерного) все повторяющиеся числа(Delphi) Махор Помощь студентам 4 29.11.2007 23:25
В введенном предложении удалить все повторяющиеся слова Алена Помощь студентам 5 21.11.2007 14:12