Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DISTINCT / 5 сообщений из 5, страница 1 из 1
06.12.2018, 15:33
    #39743592
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT
Подскажите пожалуйста, почему такая разница в количестве записей ?
Код: plsql
1.
2.
3.
4.
select  c.* from brscontracts c
INNER JOIN brsactions a ON (c.contractid = a.contractid)
AND (a.storndate IS NULL)
where c.contractnum = 'E0000521'


236 запись
Код: plsql
1.
2.
3.
4.
select distinct c.* from brscontracts c
INNER JOIN brsactions a ON (c.contractid = a.contractid)
AND (a.storndate IS NULL)
where c.contractnum = 'E0000521'


1 запись
...
Рейтинг: 0 / 0
06.12.2018, 15:42
    #39743602
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT
petrovichvanyaПодскажите пожалуйста, почему такая разница в количестве записей ?
Код: plsql
1.
2.
3.
4.
select  c.* from brscontracts c
INNER JOIN brsactions a ON (c.contractid = a.contractid)
AND (a.storndate IS NULL)
where c.contractnum = 'E0000521'


236 запись
Код: plsql
1.
2.
3.
4.
select distinct c.* from brscontracts c
INNER JOIN brsactions a ON (c.contractid = a.contractid)
AND (a.storndate IS NULL)
where c.contractnum = 'E0000521'


1 запись
Потому что из brscontracts выбирается 1 строка и множится с 236 строками из brsactions?
Во 2ом селекте выбирается 1 строка и 236 раз множится, затем уже дистинктится?
...
Рейтинг: 0 / 0
07.12.2018, 12:50
    #39744210
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT
petrovichvanyaПодскажите пожалуйста, почему такая разница в количестве записей ? DISTINCT | UNIQUE DISTINCT | UNIQUESpecify DISTINCT or UNIQUE if you want the database to return only one copy of each set of duplicate rows selected. These two keywords are synonymous. Duplicate rows are those with matching values for each expression in the select list.
...
Рейтинг: 0 / 0
07.12.2018, 16:50
    #39744455
Stawros
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select C.*
  from BRSCONTRACTS C
 where C.CONTRACTNUM = 'E0000521'
   and exists
           (select 1
              from BRSACTIONS A
             where C.CONTRACTID = A.CONTRACTID
               and A.STORNDATE is null)


Такой запрос сколько строк возвращает?
...
Рейтинг: 0 / 0
08.12.2018, 15:24
    #39744729
SkilledJunior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT
petrovichvanya,

Потому что c.contractnum = 'E0000521'
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DISTINCT / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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