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


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


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


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

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


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


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