|
|
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
Есть устройство которое либо ничего не делает и шлет каждые 2 минуты значение 0 а есть период времени когда оно работает в течении часов 5-6 и выдает значения от 1 до 9 Данные хранятся в двух полях dt datetime, value int Мне нужно получить данные из ближайшего от текущего времени периода активности устройства Как составить запрос не могу сформулировать. Помогите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 16:47 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
" ближайшего от текущего времени периода активности устройства " - неясная формулировка. Индекс на datetime Код: plsql 1. Будет быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 16:50 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
tadmin" ближайшего от текущего времени периода активности устройства " - неясная формулировка. Индекс на datetime Код: plsql 1. Будет быстро это будет не период а одно значение а мне нужен весь период ненулевых значений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 17:00 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
sp, Вы же не дали определения термина "период" Он имеет постоянный интервал? "каждые 2 минуты значение 0" - это и есть период? А если "значения от 1 до 9", то они тоже поступают каждые 2 минуты? where datetime between now() - '1 hour'::interval and now() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 17:10 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
sptadmin" ближайшего от текущего времени периода активности устройства " - неясная формулировка. Индекс на datetime Код: plsql 1. Будет быстро это будет не период а одно значение а мне нужен весь период ненулевых значений Код: sql 1. тогда Код: sql 1. 2. 3. и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 17:27 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
?Ы, можно обойтись одним обращением к таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 17:31 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
start of group, можно и трусы через голову одевать, но по индексу пару раз сикнуть -- дешевле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 17:32 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
?Ыно по индексу пару раз сикнуть -- дешевлеИз трех приведенных обращений к таблице двух скинутых трусов не получится - за индекс зацепятся. Для условия <> по одному полю и сортировки по другому полю эффективность индекса сомнительна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 17:59 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
30см.?Ыно по индексу пару раз сикнуть -- дешевлеИз трех приведенных обращений к таблице двух скинутых трусов не получится - за индекс зацепятся. Для условия <> по одному полю и сортировки по другому полю эффективность индекса сомнительна. забавный текст тест кейса, внушаит. кста, на фсякей, одно "из обращений ктоблице индексу" -- задвоено. в 50 % случаев планер пж их идентифицирует как одно. ну вот есть в ём такая особость. в выпадающих -- можно и помочь, with [recursive] а трусы на голове -- у вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:09 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
CASE: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. как есть Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:37 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
30см., сантиметровый, кейсы где ? скрипт генерации йа выше нопейсал, есличо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 20:26 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
?Ы, Мой вариант (начало и конец группы - ненулевое значение) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Должен зацепиться за index scan по уникальности dt, но это полное сканирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 20:27 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
partial index я не учел, там функциональный есть (закомментирован), он не хуже (для кейса). хотя изврат, "в общем случае" но и для ожидаемого распределения простой индекс даст не полное сканирование по , а только начального диапазона индекса. (сейчас проверю) окна же тут всегда дадут полный скан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 20:33 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
обычный индекс Код: sql 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. ваш прогнать не могу -- 9.3.6. ставить 9.4 для теста -- лениво, но ожидаю фуллскана полюбасу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 20:50 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
?Ы, спасибо за помощь, но я хотел бы уточнить мне нужно получить все данные а не начало и окончание интервала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 22:27 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
sp?Ы, спасибо за помощь, но я хотел бы уточнить мне нужно получить все данные а не начало и окончание интервала и за чем дело встало ? есть начало и конец -- какие проблемы выдернуть промежуток ? или вы за оптимальным алгоритмом ? -- ну так напишите хоть что-то, начнём сравнивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 22:34 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
spно я хотел бы уточнить мне нужно получить все данные а не начало и окончание интервалачего проще, открой курсор и фетчи строки. С интервалом 2 минуты за сутки бездействия наберется всего 720 лишних строк. если же гарантирована запись показаний о работе каждые 2 минуты, то нули можно удалить/не читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 23:21 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
дан приказ ему на запад, вы не поняли суть вопроса - мне нужны данные в первом от текущего времени интервале а не все ненулевые данные за сутки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 23:59 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
spвы не поняли суть вопросаесли не понял суть ответа, не держи других за тот же уровень умственного развития, что у тебя. где я предлагал фетчить все записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2015, 04:21 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
резултсет, вы хотите поговорить об этом??) мне это напомнило один монолог про "Пива нет".....)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2015, 14:10 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
sp, Опишите что вы хотите получить русским языком. Пока настолько расплывчато, что тут народ говорит о своем, а не о вашем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 10:08 |
|
||
|
Запрос на получение данных
|
|||
|---|---|---|---|
|
#18+
Warstone, отчасти решение привели уже выше, но поясню - устройство периодами по несколько часов работает и выдает значение отличное от нуля, затем когда оно не работает, так скажем, оно выдает значение - 0. В базе все это складывается каждые 2 минуты. Необходимо выбрать все данные ближайшего от текущего момента времени отрезка когда устройство выдавало ненулевые данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 10:19 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38904500&tid=1998114]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 495ms |

| 0 / 0 |
