|
|
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Всем привет...Похоже заработался и не могу понять как правильно построить запрос для таблицы в которой сразу должны выполняться несколько условий для одного и того же атрибута. Имеем след. таблицу такого вида: ID PRIZNAK69762316 ОСОБА_169762316 АДРЕСА_169762316 НОМЕР_169762317 ОСОБА_169762317 НОМЕР_169762318 АДРЕСА_169762319 ОСОБА_169762319 АДРЕСА_169762319 НОМЕР_1 в конечном итоге в выборку должны попасть значения с ID=69762316,69762319, т.е. для каждой ID одновременно должно выполняться три условия атрибута PRIZNAK=ОСОБА_1, PRIZNAK=АДРЕСА_1, PRIZNAK=НОМЕР_1 БД: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 13:42 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Sheriffuaне могу понять как правильно построить запросТы начни его строить хоть как-то, а потом приходи с конкретными вопросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 13:46 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
ElicSheriffuaне могу понять как правильно построить запросТы начни его строить хоть как-то, а потом приходи с конкретными вопросами. так в том-то и дело, что пока не ясно в какую сторону идти...пришел узнать направление ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 13:51 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Sheriffuaпришел узнать направление Код: plsql 1. http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 13:55 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
ElicSheriffuaпришел узнать направление Код: plsql 1. http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM за направление спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 14:28 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Возможно, речь шла про троекратное соединение таблицы сама-с-собой при равенстве ID и соответствующих значениях PRIZNAK Предварительная оптимизация, что ID должны иметь не меньше 3 разных PRIZNAK, наверняка, только улучшит скорость выборки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 14:46 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, імхо, count будет быстрее ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 15:05 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровВозможно, речь шла про троекратное соединение таблицы сама-с-собой при равенстве ID и соответствующих значениях PRIZNAK На большом объеме решение так себе, группировка может показать существенно лучший результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 15:36 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousВячеслав ЛюбомудровВозможно, речь шла про троекратное соединение таблицы сама-с-собой при равенстве ID и соответствующих значениях PRIZNAK На большом объеме решение так себе,Да что стесняться -- это решение УЖАСНО Но я не вижу другого решения для той задачи, как я ее понял -- отобрать ID, имеющие в своих полях PRIZNAK ВПОЛНЕ ОПРЕДЕЛЕННЫЕ ЗНАЧЕНИЯ В данном случае, хотя бы 3. Есть еще вариант только 3, и никаких других Хоть я давно не занимаюсь программированием, мне было бы интересно узнать более другой метод решения данной задачиandrey_anonymousгруппировка может показать существенно лучший результат.Уже интересней Можно как-нибудь развить эту тему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 15:53 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровНо я не вижу другого решения для той задачи, как я ее понял -- отобрать ID, имеющие в своих полях PRIZNAK ВПОЛНЕ ОПРЕДЕЛЕННЫЕ ЗНАЧЕНИЯcount может быть не один, а свой на каждый признак. pivot называется. Еще коллекцию можно сравнить с эталоном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 15:59 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровМожно как-нибудь развить эту тему? Да чего там развивать-то? - памяти выделить (вплоть до "руками") под sort/hash - фильтр по интересующему набору критериев - группировка по интересующему ключу с пивотингом - итоговый фильтр на агрегаты Делал так для одного крупного заказчика сопоставление продаж трех и более периодов (проверка последовательного выполнения критериев программы лояльности) - эффект вполне себе положительный в сравнении с решением на join (в том случае удалось снизить общее время выполнения с двух+ часов до, ЕМНИП, 5-7 минут). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:04 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Стоп-стоп-стоп Мы берем первоначальную картинку аффтара с 3 разными значениями PRIZNAK? Тут вообще вопросов не возникает Только сдается мне, что там могут быть и ОСОБА_11 и АДРЕСА_124 (т.е. типичная EAV) Тогда был бы благодарен с простым примером SQL запроса (черт, ну неужели нельзя подать хоть из жалости?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:06 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровСтоп-стоп-стоп Мы берем первоначальную картинку аффтара с 3 разными значениями PRIZNAK? Тут вообще вопросов не возникает Только сдается мне, что там могут быть и ОСОБА_11 и АДРЕСА_124 (т.е. типичная EAV) Тогда был бы благодарен с простым примером SQL запроса (черт, ну неужели нельзя подать хоть из жалости?) ??? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:21 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:23 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, я так понял задание Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:28 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Все правильно Это у меня мох в мозгах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:32 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Staxя так понял задание Более развернутый вариант: Код: plsql 1. 2. 3. 4. 5. 6. 7. Пример с "более другой" фильтрацией: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:45 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous Код: plsql 1. Почему все норовят идти в разрез с бритвой Оккама, сами себе придумывая "требования"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 16:48 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Elicandrey_anonymous Код: plsql 1. Почему все норовят идти в разрез с бритвой Оккама, сами себе придумывая "требования"? если признак уникален в пределах ид то и distinct не нужен 21780539 ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 17:06 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Elicandrey_anonymous Код: plsql 1. Почему все норовят идти в разрез с бритвой Оккама, сами себе придумывая "требования"? Потому что этот пост был адресован не ТС, а Вячеславу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 17:06 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, between 1 and 2 плохо, если значений 3, 4 ..., напр признак 'НОМЕР ТЕЛЕФОНА' ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 17:11 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousПотому что этот пост был адресован не ТС, а Вячеславу.Если бы этим грешил только один пост… Да и Вячеслав уже посыпался пеплом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 17:13 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousStaxя так понял задание Более развернутый вариант: Код: plsql 1. 2. 3. 4. 5. 6. 7. тут нужен sum, а не count Если на id висит индекс, но в таблице оооооочень много строк и большая часть id соответствует требованиям выборки, то план по вашему варианту с группировкой свалится в фулскан и будет ооооочень тяжело. Тогда лучше сделать так: Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 21:25 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Fogelandrey_anonymousпропущено... Более развернутый вариант: Код: plsql 1. 2. 3. 4. 5. 6. 7. тут нужен sum, а не count Если на id висит индекс, но в таблице оооооочень много строк и большая часть id соответствует требованиям выборки, то план по вашему варианту с группировкой свалится в фулскан и будет ооооочень тяжело. Тогда лучше сделать так: Код: plsql 1. 2. 3. 4. 1) чем сум 1 отличаетя от count 2) скоко ид Вы получите? ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 21:46 |
|
||
|
Выборка из таблицы значений подходящей под 3 и более условий для одного атрибута
|
|||
|---|---|---|---|
|
#18+
Fogelтут нужен sum, а не countШилом нагляднее указывать куда пойти. С мылом могут не так понять. FogelТогда лучше сделать такНесомненно, умножение того же full scan на себя же ускоритв разы. А потерянный distinct ускорит еще и еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 22:17 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39757146&tid=1882952]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 398ms |

| 0 / 0 |
