Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Выборка только повторяющихся значений / 5 сообщений из 5, страница 1 из 1
24.06.2013, 13:17
    #38308135
Gnus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка только повторяющихся значений
Есть табличка, результат всегда будет отличаться,
1 data1 data3 номер1 число1
2 data1 data2 номер2 число2
3 data1 data2 номер3 число3
4 data1 data4 номер4 число4
5 data1 data2 номер5 число5
6 data1 data4 номер6 число6
7 data1 data5 номер7 число7

хочу приучить скрипт чтобы на выходе он выдавал строки с не более чем с тремя повторяющимися значениями столбца 3, то есть в моем случае резултат хочу чтобы был

5 data1 data2 номер5 число5
3 data1 data2 номер3 число3
2 data1 data2 номер2 число2



Писал
типа
select столбец1,...2,...3,...4,...5
from
( select ...
from ...
where...) b
where exists ( select а.столбец3 from table a where а.столбец3=b.столбец3 and a.столбец3!=б.столбец3)
group by...

Выдает в итоге то же что и без exists. Что делать ?
...
Рейтинг: 0 / 0
24.06.2013, 13:50
    #38308178
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка только повторяющихся значений
Gnus1Что делать ?
Использовать оконные функции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.06.2013, 14:11
    #38308211
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка только повторяющихся значений
Скорее всего, аналитическая ф-я count, например.

типа
select * from
(
select count(*) over (partition by столбец3) cnt, t.* from .... t
) where cnt > 1 and cnt <= 3

или типа того
...
Рейтинг: 0 / 0
24.06.2013, 14:24
    #38308232
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка только повторяющихся значений
По Вашему примеру не "не более трех повторений", а "ровно три повторения"

Код: sql
1.
2.
3.
4.
5.
6.
....
where Field3 in 
      ( select field3
        from ...
         group by field3
         having count(*)  = 3) -- если все-таки "не более трех", то count(*) <=3
...
Рейтинг: 0 / 0
24.06.2013, 17:00
    #38308505
Gnus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка только повторяющихся значений
Может быть и криво, но у меня заработало вот в таком духе

select
a1,a2,a3,a4
from
(select a1,a2,a3,count (имя_столбца_где_нужны_повторения)
over (PARTITION by имя_столбца_где_нужны_повторения) a4 from table where...)

where a4<=3
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Выборка только повторяющихся значений / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]