Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.10.2008, 12:48
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
Добрый день! Есть таблица содержащая CDR (детализацию звонков). С плями длительности и времени звонка (и прочими). Нужно сделать выборку из таблицы за месяц, но в заданный промежуток времени. Т.е. Все записи в течение месяца за время с 10:00 до 22:00 (к примеру). Осень не хочется делать цикл. Можно ли сделать это одним запросом? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.10.2008, 13:03
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
воспользуйтесь функцией date_part: дока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.10.2008, 14:08
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
LeXa NalBatвоспользуйтесь функцией date_part: дока За ссылку спасибо, но никак не сооброжу чем мне поможет данная функция сделать 1 запрос. Я могу сделать функцию и там цикл, но хочется сделать это красивее, т.к. цикл будет сильно тормозить БД. Может есть какой-нибудь пример? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.10.2008, 14:33
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
Maxim Timofeyev LeXa NalBatвоспользуйтесь функцией date_part: дока За ссылку спасибо, но никак не сооброжу чем мне поможет данная функция сделать 1 запрос. Я могу сделать функцию и там цикл, но хочется сделать это красивее, т.к. цикл будет сильно тормозить БД. Может есть какой-нибудь пример? Заранее спасибо! Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 00:29
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
если у вас естъ индек по полю времени звонка, надо провeрьте/убедитесь что date_part() его использует, а нето будет скан по всей таблице. (если индекса нет то фиолетово) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 10:06
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
Konstantin~если у вас естъ индек по полю времени звонка, надо провeрьте/убедитесь что date_part() его используетпостгрес не сможет для проверки ограничения date_part() использовать индекс по timestamp. для ускорения надо строить функциональный индекс по ( date_part( 'hour', call_time_begin ) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 12:39
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
LeXa NalBatпостгрес не сможет для проверки ограничения date_part() использовать индекс по timestamp. для ускорения надо строить функциональный индекс по ( date_part( 'hour', call_time_begin ) ). Так? CREATE INDEX calldate_date_part_idx ON callslog (calldate) WHERE date_part('hour'::text, calldate); ERROR: тип аргумента конструкции WHERE должен быть boolean, а не double precision Но так не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 12:40
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
если использовать только date_part() то да. можно используя индекс выбрать данные по месяцу, а из их потом выбрать данные по конкретным часам. Или использовать <timestamp_filed>::time Код: plaintext 1. 2. 3. 4. 5. 6. или можно еще проще Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 12:45
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
Maxim TimofeyevТак? CREATE INDEX calldate_date_part_idx ON callslog (calldate) WHERE date_part('hour'::text, calldate); ERROR: тип аргумента конструкции WHERE должен быть boolean, а не double precision Но так не получается.нет. CREATE INDEX calldate_date_part_idx ON callslog ( date_part('hour'::text, calldate) ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 12:46
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
Andrey Daeron Код: plaintext 1. 2. 3. 4. Огромное спасибо -- работает! осталось разобраться с индексами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 12:47
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
второй запрос был слегка неверный, и в первом помойму надо добавить AS something для суб-селекта Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 13:35
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
LeXa NalBatнет. CREATE INDEX calldate_date_part_idx ON callslog ( date_part('hour'::text, calldate) ); Так тоже не получается: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2008, 14:07
|
|||
|---|---|---|---|
|
|||
Помогите с запросом выборки промежутка времени за месяц |
|||
|
#18+
Maxim TimofeyevТак тоже не получается: ERROR: фунции в идексном выражении должны быть помечены как IMMUTABLEпереходите на новую версию постгреса. или создавайте свою функцию-обертку с флагом immutable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2004003]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 367ms |

| 0 / 0 |
