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

Откуда:
Сообщений: 245
Доброе время суток.
Подскажите пожалуйста, как вывести уникальные записи?!
Емеется таблица load, со структурой

id-integer
name - varchar 255
dtime - varchar 255

c заполненными данными

id name dtime
1 vasa 21.03.2017 21:17:23
2 kola 21.03.2017 21:17:23
3 sona 21.03.2017 21:17:23
4 peta 21.03.2017 21:47:23
5 ola 21.03.2017 21:47:23
6 vasa 21.03.2017 21:47:23
7 kola 21.03.2017 21:47:23
8 sona 21.03.2017 21:47:23

Так вот хотелось бы вывести все уникальные записи в период с 21:17:23 по 21:47:23 При этом позиции 6,7 и 8 выводились с вренемем 21:47:23 а не 21:17:23
ТИП:
id name dtime count (name)
4 peta 21.03.2017 21:47:23 (1)
5 ola 21.03.2017 21:47:23 (1)
6 vasa 21.03.2017 21:47:23 (2)
7 kola 21.03.2017 21:47:23 (2)
8 sona 21.03.2017 21:47:23 (2)
22 мар 17, 14:39    [20321404]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
Гугл в помощь
Guest
minioracle
Доброе время суток.
Подскажите пожалуйста, как вывести уникальные записи?!
Емеется таблица load, со структурой

id-integer
name - varchar 255
dtime - varchar 255
c заполненными данными

id  name dtime
1   vasa  21.03.2017 21:17:23
2   kola   21.03.2017 21:17:23
3   sona  21.03.2017 21:17:23
4   peta  21.03.2017 21:47:23
5   ola    21.03.2017 21:47:23
6   vasa  21.03.2017 21:47:23
7   kola   21.03.2017 21:47:23
8   sona  21.03.2017 21:47:23

Так вот хотелось бы вывести все уникальные записи в период с 21:17:23 по 21:47:23 При этом позиции 6,7 и 8 выводились с вренемем 21:47:23 а не 21:17:23
ТИП:
id  name dtime                     count (name)
4   peta  21.03.2017 21:47:23 (1)
5   ola    21.03.2017 21:47:23 (1)
6   vasa  21.03.2017 21:47:23 (2)
7   kola   21.03.2017 21:47:23 (2)
8   sona  21.03.2017 21:47:23 (2)

Используйте форматирование и будут ответы )
22 мар 17, 15:09    [20321522]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
minioracle,

where + group by + keep first/last
22 мар 17, 15:23    [20321611]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
MaximaXXL
Member

Откуда: Киев
Сообщений: 652
minioracle,

можно банально
select max(id) id, name, max(dtime) dtime, count(name) from load
where to_date(dtime),'dd.mm.yyyy hh24:mi:ss') between to_date('21.03.2017 21:17:23','dd.mm.yyyy hh24:mi:ss') and to_date('21.03.2017 21:47:23','dd.mm.yyyy hh24:mi:ss')
group by name
22 мар 17, 15:51    [20321756]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
MaximaXXL
Member

Откуда: Киев
Сообщений: 652
MaximaXXL,
to_date(dtime,'dd.mm.yyyy hh24:mi:ss')
22 мар 17, 15:52    [20321766]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
stax..
Guest
MaximaXXL
minioracle,

можно банально
select max(id) id, name, max(dtime) dtime, count(name) from load
where to_date(dtime),'dd.mm.yyyy hh24:mi:ss') between to_date('21.03.2017 21:17:23','dd.mm.yyyy hh24:mi:ss') and to_date('21.03.2017 21:47:23','dd.mm.yyyy hh24:mi:ss')
group by name


имхо луче KEEP (DENSE_RANK ....

в общем случае max(id) может не соответствовать max(dtime)

.....
stax
22 мар 17, 16:21    [20321933]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
MaximaXXL
Member

Откуда: Киев
Сообщений: 652
stax..,

Согласен, но для конкретной задачи я и написал, когда человек начнет задаваться этими вопросами то будет правильнее писать задачи =)
22 мар 17, 16:37    [20322009]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
minioracle
Member

Откуда:
Сообщений: 245
stax..

имхо луче KEEP (DENSE_RANK ....

в общем случае max(id) может не соответствовать max(dtime)

.....
stax

Впервые слышу про KEEP (DENSE_RANK ....
ни когда не сталкивался с ними
22 мар 17, 17:40    [20322292]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
minioracle,

FIRST
LAST
22 мар 17, 17:54    [20322346]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
у меня все мини
Guest
minioracle
Впервые слышу про KEEP (DENSE_RANK ....
ни когда не сталкивался с ними


ну у тебя же mini.
22 мар 17, 19:44    [20322708]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
stax..
Guest
minioracle
stax..
имхо луче KEEP (DENSE_RANK ....

в общем случае max(id) может не соответствовать max(dtime)

.....
stax

Впервые слышу про KEEP (DENSE_RANK ....
ни когда не сталкивался с ними


  1  with t(id,name,dtime) as (
  2  select 1, 'vasa', to_date('21.03.2017 21:17:21') from dual union all
  3  select 2, 'kola', to_date('21.03.2017 21:17:22') from dual union all
  4  select 3, 'sona', to_date('21.03.2017 21:17:23') from dual union all
  5  select 4, 'peta', to_date('21.03.2017 21:47:24') from dual union all
  6  select 5, 'ola',  to_date('21.03.2017 21:47:25') from dual union all
  7  select 6, 'vasa', to_date('21.03.2017 21:47:26') from dual union all
  8  select 7, 'kola', to_date('21.03.2017 21:47:27') from dual union all
  9  select 8, 'sona', to_date('21.03.2017 21:47:28') from dual
 10  )
 11  select
 12   max(id) KEEP (DENSE_RANK last ORDER BY dtime,id) id
 13  ,name
 14  ,max(dtime) KEEP (DENSE_RANK last ORDER BY dtime,id) dtime
 15  from t
 16  group by name
 17* order by 1
SQL> /

        ID NAME DTIME
---------- ---- -------------------
         4 peta 21.03.2017 21:47:24
         5 ola  21.03.2017 21:47:25
         6 vasa 21.03.2017 21:47:26
         7 kola 21.03.2017 21:47:27
         8 sona 21.03.2017 21:47:28


......
stax
22 мар 17, 21:33    [20323015]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 3010
если мне не изменяет память то есть distinct
23 мар 17, 09:13    [20323971]     Ответить | Цитировать Сообщить модератору
 Re: Вывод уникальных записей  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 3010
хотя DISTINCT используется для удаления дубликатов
23 мар 17, 09:16    [20323981]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить