Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Убрать дубликат строки без group by / 7 сообщений из 7, страница 1 из 1
09.07.2021, 15:32
    #40083051
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать дубликат строки без group by
Коллеги, подскажите пжл как убрать дубликат строк из результата запроса без group by, чтобы не переписывать кучу названий полей
Вот к примеру мне нужно оставить только одну из двух строк по полю saletime
нужно именно по saletime, так как id разный, но строка нужна только одна из двух - любая причем
...
Рейтинг: 0 / 0
09.07.2021, 21:06
    #40083103
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать дубликат строки без group by
distinct
...
Рейтинг: 0 / 0
09.07.2021, 22:59
    #40083109
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать дубликат строки без group by
Guzya
distinct


distinct именно как? задача была " чтобы не переписывать кучу названий полей" (в запросе).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
09.07.2021, 23:01
    #40083110
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать дубликат строки без group by
арт2010
Коллеги, подскажите пжл как убрать дубликат строк из результата запроса без group by, чтобы не переписывать кучу названий полей
Вот к примеру мне нужно оставить только одну из двух строк по полю saletime
нужно именно по saletime, так как id разный, но строка нужна только одна из двух - любая причем


если я правильно понял вашу поставновку задачи то она решается через

SELECT DISTINCT ON (saletime) * FROM таблица ORDER BY saletime;


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
09.07.2021, 23:20
    #40083111
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать дубликат строки без group by
Maxim Boguk, благодарю, уже было нашел решение

Код: plsql
1.
2.
3.
4.
5.
6.
select * from
(
  select *, row_number() over (partition by saletime order by saletime) as rn 
  from erpi_purchase
) t
WHERE rn  = 1;



Ваше вроде работает аналогично - по крайней мере выдает такое же число записей при прогоне на массиве данных.
Сейчас другая проблема - оказалось, что нужно привязываться не только к saletime, а еще как минимум к двум полям
Пока не могу понять - если добавить пару полей в ваш вариант, сработает ли он как мне надо
При добавлении еще двух полей - он выдает даже на 1 запись больше чем мой запрос или ваш с одним полем - saletime

Код: plsql
1.
2.
SELECT DISTINCT ON (saletime, shop, cash) * FROM erpi_purchase  
ORDER BY saletime;



Наверное все таки придется делать через group by - там все более однозначно
...
Рейтинг: 0 / 0
09.07.2021, 23:44
    #40083112
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать дубликат строки без group by
арт2010,

Код: sql
1.
2.
SELECT DISTINCT ON (saletime, shop, cash) * FROM erpi_purchase  
ORDER BY saletime, shop, cash;




--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
10.07.2021, 00:04
    #40083113
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать дубликат строки без group by
Maxim Boguk, благодарю, да, group by вроде бы дает тот же результат, по крайней мере по числу результирующих записей
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Убрать дубликат строки без group by / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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