Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как отсортировать повторяющися данные с null  [new]
day-spring
Member

Откуда:
Сообщений: 71
Подскажите пжл, есть таблица:
id name username
1 doc1 Alex
2 doc2 Kate
3doc3null
4doc1null


Как можно вытащить такие данные?

name username
doc1 Alex
doc2 Kate
doc3null
7 окт 17, 22:44    [20851467]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 8689
day-spring,

Буду считать name с NOT NULL username может быть только один раз. Тогда

SELECT  NAME,
        MAX(USERNAME) USERNAME
  FROM  TBL
  GROUP BY NAME
/


SY.
7 окт 17, 23:36    [20851526]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром началась. КЯЗ
Сообщений: 27502
SY
SY
Как минимум, столбцы попутал.
8 окт 17, 08:28    [20851741]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 8689
Elic
Как минимум, столбцы попутал.


Да ну?

SQL> set null null
SQL> with tbl as (
  2               select 1 id,'doc1' name,'Alex' username from dual union all
  3               select 2,'doc2','Kate' from dual union all
  4               select 3,'doc3',null from dual union all
  5               select 4,'doc1',null from dual
  6              )
  7  SELECT  NAME,
  8          MAX(USERNAME) USERNAME
  9    FROM  TBL
 10    GROUP BY NAME
 11  /

NAME USER
---- ----
doc1 Alex
doc2 Kate
doc3 null

SQL> 


SY.
8 окт 17, 12:34    [20852023]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром началась. КЯЗ
Сообщений: 27502
Ну да.
  7  select  max(name) as name, username from tbl group by username order by name
  8  /

NAME USER
---- ----
doc1 Alex
doc2 Kate
doc3 null
9 окт 17, 07:34    [20853364]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
Загги
Guest
Пример корявой постановки задачи. Решения с абсолютно разными результатами, подходят под условия.
9 окт 17, 07:47    [20853373]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 631
Загги,

  1  with tbl as (
  2                 select 1 id,'doc1' name,'Alex' username from dual union all
  3                 select 2,'doc2','Kate' from dual union all
  4                 select 5,'doc5','Kate' from dual union all
  5                 select 3,'doc3',null from dual union all
  6                 select 4,'doc1',null from dual
  7                )
  8  ,t as (
  9  select
 10    tbl.*
 11   ,sum(decode(username,null,1,0)) over (order by username,id) rn
 12  from tbl)
 13* select * from t where rn<2
SQL> /

        ID NAME USER         RN
---------- ---- ---- ----------
         1 doc1 Alex          0
         2 doc2 Kate          0
         5 doc5 Kate          0
         3 doc3               1


зы
id is not null

.....
stax
9 окт 17, 09:31    [20853505]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
3214 сорт
Guest
select name, max(username) keep(dense_rank first order by username nulls last) from tbl group by name
9 окт 17, 10:21    [20853602]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
3214 сорт
Guest
3214 сорт ,
для вставки условий выбора и сортировки, если username несколько
9 окт 17, 10:24    [20853608]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 8689
Elic,

Задача хоть и озвучена неоднозначно, но исходя из того что в примере две строки с тем-же NAME более логично (IMHO) предположить группировку по NAME.

SY.
9 окт 17, 14:25    [20854646]     Ответить | Цитировать Сообщить модератору
 Re: Как отсортировать повторяющися данные с null  [new]
xtender
Member

Откуда: Мск
Сообщений: 4688
имхо по id сортировать максимум логичнее, чем по username :)
9 окт 17, 14:59    [20854813]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить