Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
база postgresql-8.1.4. Есть таблица вида Код: plaintext 1. 2. 3. 4. 5. Нужно выбрать строки соответствующие продажам на следующий торговый день после того как выручка была больше 100. т.е. на наборе (1, '2006-06-01',10); (1, '2006-06-02',110); (1, '2006-06-05',10); (2, '2006-06-01',110); (2, '2006-06-02',10); (2, '2006-06-05',10); запрос должен выбрать (1, '2006-06-05',10); (2, '2006-06-02',10); У меня проблема в том что даты не являются непрерывными, т.е. продавец мог не работать некоторое время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:00 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Тебя интересует только один следующий день для каждого продавца? ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:16 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
меня интересует каждый следующий день после того как выручка была больше определенного предела, для каждого продавца. т.е. на наборе (1, '2006-06-01',10); (1, '2006-06-02',110); (1, '2006-06-05',10); (1, '2006-06-06',110); (1, '2006-06-07',10); (2, '2006-06-01',110); (2, '2006-06-02',10); (2, '2006-06-05',10); запрос должен выбрать (1, '2006-06-05',10); (1, '2006-06-07',10); (2, '2006-06-02',10); и еще одно замечание - продавцов очень много (около миллиона). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:21 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Можно сделать и одним запросом, но на таких объемах это будет очень медленное решение... Надо??? ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:24 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Владимор КоневМожно сделать и одним запросом, но на таких объемах это будет очень медленное решение... Надо??? мне не обязательно одним запросом. подойдет любое решение в том числе и с промежуточными таблицами и с функциями. но конечно хочется, чтобы было как можно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:27 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Ещё нюанс, а если три дня подряд продавец продавал на сумму, удовлетворяющую критерию поиска, то в этом случае какие строки должны вернуться? Ксли есть вот такой набор данных: id d profit1 '2006-06-01'1101 '2006-06-02'1101 '2006-06-05'1101 '2006-06-06'101 '2006-06-07'102 '2006-06-01'1102 '2006-06-02'102 '2006-06-05'10 то что мы должны получить на нем для продавца с ID = 1? ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:40 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Владимор КоневМожно сделать и одним запросом, но на таких объемах это будет очень медленное решение... Надо??? ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питересли я правильно понимаю, этобудет джойн сам на себя по условию ~ продавец= продавец И день = день(выручка>=100)+1 Почему такой джойн будет медленен? Нужен индекс по продавцу и выручке - для фильтрации по условию, плюс индекс по продавцу и дню - для джойна. Нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:44 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Владимор КоневЕщё нюанс, а если три дня подряд продавец продавал на сумму, удовлетворяющую критерию поиска, то в этом случае какие строки должны вернуться? Ксли есть вот такой набор данных: id d profit1 '2006-06-01'1101 '2006-06-02'1101 '2006-06-05'1101 '2006-06-06'101 '2006-06-07'102 '2006-06-01'1102 '2006-06-02'102 '2006-06-05'10 то что мы должны получить на нем для продавца с ID = 1? второй и третий день тоже должны войти в результат. т.е результат должен быть id d profit1 '2006-06-02'1101 '2006-06-05'1101 '2006-06-06'102 '2006-06-02'10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:51 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
4321если я правильно понимаю, этобудет джойн сам на себя по условию ~ продавец= продавец И день = день(выручка>=100)+1 [/quot] Здесь кстати операция date+1 не подойдет. нужна именно следующая запись из таблицы для данного продавца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 10:54 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
dv14 4321если я правильно понимаю, этобудет джойн сам на себя по условию ~ продавец= продавец И день = день(выручка>=100)+1 Здесь кстати операция date+1 не подойдет. нужна именно следующая запись из таблицы для данного продавца.[/quot]ну, это другое делооо! я опирался на автор интересует каждый следующий день понятие следующий день определно либо на мн-ве дней, либо на некоем его подмножестве. Т.к. подмножество в вормулировке не фигурировало - я позволил допустить, что имеется в виду date+1. Засим видимо следует открыть набор всех дней, когда выручка 100 и в цикле возвращать что то из SELECT ... WHERE продавец = $продавец AND date > $date LIMIT 1; это не будет очень быстрым, но видимо наиболее быстрым из возможного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 11:04 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
4321я опирался на автор интересует каждый следующий день понятие следующий день определно либо на мн-ве дней, либо на некоем его подмножестве. Т.к. подмножество в вормулировке не фигурировало - я позволил допустить, что имеется в виду date+1. dv14У меня проблема в том что даты не являются непрерывными, т.е. продавец мог не работать некоторое время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 11:08 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Владимор Коневъ dv14У меня проблема в том что даты не являются непрерывными, т.е. продавец мог не работать некоторое время.ок. правда нигде не сказано, что если он не работал - то день, когда он начал работать - считается следующим. А так - да, вы скорее всего более точно протелепатили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 11:22 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
За основу взял вот такой набор данных: id d profit1 '2006-06-01'1101 '2006-06-02'1101 '2006-06-05'1101 '2006-06-06'101 '2006-06-07'102 '2006-06-01'1102 '2006-06-02'102 '2006-06-05'10 Вот запрос, который вернет нужный набор: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 12:09 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Владимор КоневЗа основу взял вот такой набор данных: id d profit1 '2006-06-01'1101 '2006-06-02'1101 '2006-06-05'1101 '2006-06-06' 10 1 '2006-06-07'102 '2006-06-01'1102 '2006-06-02'102 '2006-06-05'10Пардон, немного соврал. Набор данных был вот такой: id d profit1 '2006-06-01'1101 '2006-06-02'1101 '2006-06-05'1101 '2006-06-06' 110 1 '2006-06-07'102 '2006-06-01'1102 '2006-06-02'102 '2006-06-05'10 В остальном всё верно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 13:49 |
|
||
|
помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Кстати, есть ещё один вариант - с коррелированным подзапросом в SELECT-листе. Возможно он будет менее накладным для сервера. Надо? ----------------------------------------------------------------------------------------------------------------------------------------- З.Ы. Неспешно ищу работу, согласен на переезд в Москву или Питер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 05:09 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33873818&tid=2006216]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 417ms |

| 0 / 0 |
