|
Исключить из результатов запроса определенные строки | ☑ | ||
---|---|---|---|---|
0
JuixyJes
21.07.21
✎
13:28
|
Добрый день! Подскажите... Как исключить из запроса две записи с одинаковым значением поля? Допустим это поле - наименование.
есть куча строк результата запроса, и вот в 3 и 37 строке одно и то же, как удалить из результатов запроса обе строки? |
|||
1
JuixyJes
21.07.21
✎
13:29
|
Для ясности, мне не нужно оставлять ни одну строку из этих двух.
|
|||
2
Kassern
21.07.21
✎
13:29
|
(1) используй отборы
|
|||
3
crasler
21.07.21
✎
13:33
|
(1) Сохрани таблицу в временную с подсчетом количества совпадений и сравнивай есть ли там это наименование
|
|||
4
Ёпрст
21.07.21
✎
13:35
|
group by +having sum(нечто )=1
|
|||
5
Said_We
21.07.21
✎
13:35
|
(0) Если строки полностью одинаковые, то вместо ВЫБРАТЬ используй ВЫБРАТЬ РАЗЛИЧНЫЕ
|
|||
6
Ёпрст
21.07.21
✎
13:35
|
(5) ей надо обе удалить из выборки
|
|||
7
acht
21.07.21
✎
13:35
|
сгруппировать по чегой-то-там имеющие(количиство(чегой-то-там))=1
|
|||
8
Said_We
21.07.21
✎
13:36
|
Если обе, три и более строки надо удалить, то надо их посчитать и где более 1 в условие.
|
|||
9
JuixyJes
21.07.21
✎
13:39
|
(4) Так, я не понимаю что это значит, можете меня считать глупой, но это так:)
Можете по подробнее написать, как и где мне это сделать? |
|||
10
Ёпрст
21.07.21
✎
13:39
|
(8) дык она же не написала, что если есть дубли строк, то такие строки не учитываем вообще
|
|||
11
Ёпрст
21.07.21
✎
13:40
|
(9) ну, в (7) по-русски то же самое
|
|||
12
Said_We
21.07.21
✎
13:41
|
(10) Как бы написала....
В (0) "как удалить из результатов запроса обе строки?" В (1) "мне не нужно оставлять ни одну строку из этих двух." |
|||
13
Said_We
21.07.21
✎
13:42
|
(9) Текст запроса покажи - расскажут как.
|
|||
14
dubolom
21.07.21
✎
13:42
|
(9) Новая временная таблица
ВЫБРАТЬ ВашаТаблица.Наименование КАК Наименование СГРУППИРОВАТЬ ПО ВашаТаблица.Наименование ИМЕЮЩИЕ КОЛИЧЕСТВО(ВашаТаблица.Наименование)>1 Потом делаете внутреннее соединение по полю Наименование с вашей таблицей. |
|||
15
Ёпрст
21.07.21
✎
13:43
|
(12) и ?
не нужно оставлять ни одну строку из этих двух = удалить обе |
|||
16
Said_We
21.07.21
✎
13:44
|
(15) Или три или более... Я так прочитал.
(14) соединения не нужны |
|||
17
Адинэснег
21.07.21
✎
13:44
|
(15) -> (2)
|
|||
18
Kassern
21.07.21
✎
13:45
|
я прост не понимаю, что тут обсуждать, детская же задача?
Как я понял у ТС следующий результат: Яблоко 1 Груша 3 Арбуз 10 Яблоко 2 Если стоит задача удалить именно яблоко из результата запроса, то какой смсыл что то там группировать? Тупо Где Таблица.Наименование<>"Яблоко"; Вот тогда и придем к результату описанному ТС("есть куча строк результата запроса, и вот в 3 и 37 строке одно и то же, как удалить из результатов запроса обе строки?") |
|||
19
Адинэснег
21.07.21
✎
13:45
|
ему тупо сгруппировать надо, либо "различные" если агрегатных функций не надо
|
|||
20
Kassern
21.07.21
✎
13:46
|
(18) ну или я не понял, что именно ТС надо...
|
|||
21
dubolom
21.07.21
✎
13:46
|
(16) Чому не нужны? Как выбросить лишние строки из первоначальной таблицы?
|
|||
22
acht
21.07.21
✎
13:46
|
(14) > Новая временная таблица
Зачем? |
|||
23
Адинэснег
21.07.21
✎
13:47
|
да он даже запрос не скинул)
|
|||
24
acht
21.07.21
✎
13:47
|
(21) Посчитать количество группировкой и выбросить те, которых слишком много
|
|||
25
dubolom
21.07.21
✎
13:47
|
(22) Получить данные по задвоениям поля Наименование. По умолчанию ведь в исходной таблице есть и другие поля.
|
|||
26
Said_We
21.07.21
✎
13:47
|
(19) Не ему, а ей и фото есть.
|
|||
27
dubolom
21.07.21
✎
13:47
|
(24) А другие колонки из исходной табилцы как подтянутся?
|
|||
28
acht
21.07.21
✎
13:48
|
(27) А с чего ты взял, что они там есть?
|
|||
29
JuixyJes
21.07.21
✎
13:48
|
(14) Вот вроде бы похоже, но только не >1 а =1 наверное
|
|||
30
Адинэснег
21.07.21
✎
13:49
|
а так удалить все таки, тогда (9)
а помните было затишье на мисте по тех. части? опять повылазили гуглопрограмиисты / мистапрограммисты |
|||
31
dubolom
21.07.21
✎
13:49
|
(29) Да, конечно, косякнул.
(28) Не сказано, что их нет, по дефолту в таблице не одна колонка. |
|||
32
Said_We
21.07.21
✎
13:49
|
(29) Тоже самое с =1 в (7)
|
|||
33
acht
21.07.21
✎
13:52
|
(30) Тут другое =) Тут явный https://clck.ru/1BojE
|
|||
34
Said_We
21.07.21
✎
13:53
|
(31) Если строки полностью одинаковые, то одинаковые по всем колонкам. Всё в группировку. А если какие-то поля не равны, то это не равные строки. :-)
Вместо внутреннего соединения можно использовать в условии ГДЕ т1.Наименование в (выбрать т.Наименование из т как т .... |
|||
35
Said_We
21.07.21
✎
13:58
|
(34)
Или так: ГДЕ НЕ т1.Наименование в (выбрать т.Наименование из т как т .... <> 1... Так если исключается строк не много. Как в примере в (0) до 37 строки только первое совпадение... :-) |
|||
36
Classic
21.07.21
✎
14:00
|
(0)
Уникальное какой-то поле у строк есть? |
|||
37
dubolom
21.07.21
✎
14:06
|
(34) Запрос был - удалить записи с одинаковым значением одного поля.
Ну да, или так, но мне соединения больше нравятся:) |
|||
38
Said_We
21.07.21
✎
14:21
|
(37) Если условие соединения не только = или типы значений сравнения составные и т.д., то лучше не использовать СОЕДИНЕНИЯ. Может получиться сильно не быстро.
|
|||
39
Мигрень
21.07.21
✎
15:33
|
(0) нужные строки пометить на удаление и провести процедуру удаления помеченных объектов. Тогда эти строки в результат запроса не попадут
|
|||
40
dubolom
21.07.21
✎
15:41
|
(39) Не факт, что это вообще справочник. И не факт, что нужно именно удалять.
|
|||
41
Мигрень
21.07.21
✎
16:04
|
(40) в (0) написано что нужно исключить, если удалить, то они исключатся. Про справочник я нигде не писал.
|
|||
42
dubolom
21.07.21
✎
16:05
|
(41) Сегодня день толстоты на Мисте, штоле?
|
|||
43
Мигрень
21.07.21
✎
16:07
|
(42) не знаю, не измерял, рулетка нужна
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |