|
|
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
Ребят привет. Есть задача из первоночально полученных данных убрать повторные записи по user_id(у каждой записи есть уникальный id). Написал вот такой запрос with the_t as ( select distinct b.user_id, b.created_date_time::date, b.id, b.status, b.country_id from b where b.created_date_time>'2015-04-09' and b.status='completed' ) delete from the_t where exists (select ID from the_t where user_id = the_t.user_id and ID < the_t.ID) Но такой запрос падает с ошибкой: ERROR: relation "the_t" does not exist LINE 17: delete from the_t ^ ********** Ошибка ********** ERROR: relation "the_t" does not exist SQL-состояние: 42P01 Символ: 346 Что я делаю не так? Почему он считает что табличка не создана? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 14:33 |
|
||
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
hommePibre, delete from the_t Нельзя удалять из результата WITH поздапроса а только из реальных таблиц. Вы наверное имели в виду Код: plsql 1. ? -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 14:52 |
|
||
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, теперь понятно почему не работает( спасибо а есть лекгий и быстрый способ из результата with создать таблицу? и удалять из b у меня прав не хватит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 19:27 |
|
||
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
hommePibreиз результата with создать таблицуselect into/ctas, но обычно проще дописать where, чем что-то создавать ради удаления. И еще, distinct id также наводит на мысль о полном непонимании предмета. Базы данных не та область, где стоит что-то делать нахрапом, чтобы потом с этим мучиться пользователям. Сначала книжки, потом тестовые задачки, потом осмысленные вопросы на форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 22:26 |
|
||
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
p2., distinct остался от чего то другого у меня, он тут не нужен) А на счет понимая предмета это вы правы, храмает причем сильно) Но мне обычно сложнее простого select'а с join'ами не нужно писать. А вот эту задачу приходится решать чем получится. Создать свою таблицу мне придется из-за того что я не могу вносить изменения в исходную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 22:56 |
|
||
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
hommePibreСоздать свою таблицу мне придется из-за того что я не могу вносить изменения в исходную.Наверное не просто так не дают портить исходные данные. Для такого подхода чаще выбирают всякие экселы. Почему-то считается, что они, в отличие от sql, знаний не требуют. Какие изменения вносить? "Удаления" ради уникализации user_id элементарно наложить на исходные данные через агрегацию или distinct on. Прочие изменения в отрыве от исходных данных тоже выглядят сомнительно, а в связи - их надо делать соответственно связанной таблицей, чтобы не потом не бороться с очередной мегапроблемой, как скопировать изменения из источника и не похерить свои. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 23:19 |
|
||
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
hommePibreMaxim Boguk, теперь понятно почему не работает( спасибо а есть лекгий и быстрый способ из результата with создать таблицу? и удалять из b у меня прав не хватит) удалить дубликаты таким образом у тебя однозначно не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 01:39 |
|
||
|
удалить лишние записи из таблици созданной с помощью with
|
|||
|---|---|---|---|
|
#18+
p2.hommePibreСоздать свою таблицу мне придется из-за того что я не могу вносить изменения в исходную.Наверное не просто так не дают портить исходные данные. Для такого подхода чаще выбирают всякие экселы. Почему-то считается, что они, в отличие от sql, знаний не требуют. Какие изменения вносить? "Удаления" ради уникализации user_id элементарно наложить на исходные данные через агрегацию или distinct on. Прочие изменения в отрыве от исходных данных тоже выглядят сомнительно, а в связи - их надо делать соответственно связанной таблицей, чтобы не потом не бороться с очередной мегапроблемой, как скопировать изменения из источника и не похерить свои. классная идея про "наложить на исходные данные через агрегацию или distinct on"! спасибо!) но меня инетересуют уникальные и первые записи по определенному user_id То есть получается нужно делать так: 1)получаем уникальный список user_id 2)join'ом отфильтровываем лишее Только вот где гарантия что остануться только первые записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 15:42 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38934352&tid=1998048]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 476ms |

| 0 / 0 |
