powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Есть ли смысл исключать из под суммирования нулевые поля?
25 сообщений из 53, страница 2 из 3
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526097
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYУпс - мой SELECT не вернет клиентoв c SUM(COST) = 0
В моем случае это не важно, мне нужны только клиенты с ненулевыми агрегатами.
Однако мне казалось сомнительным создавать индекс на миллионной таблице под конкретный запрос.
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526099
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadО том, что в общем случае date - это дата со временем, и для фильтрации диапазона лучше использовать другое условие.
Ну это мне известно, between я указал для компактности.
В реальном запросе >=:date1 and <:date2
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526128
32 мая
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tip78это элементарно лечится:
Код: sql
1.
added BETWEEN '2017-07-01 00:00:00' AND '2017-09-31 23:59:59'

Ну вот у меня давняя система телефонии. Пару лет назад посчасливилось переходить на таймстампы - требования ЕС предписывают считать до миллисекунд.
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526141
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78это элементарно лечится:
Код: sql
1.
added BETWEEN '2017-07-01 00:00:00' AND '2017-09-31 23:59:59'


а если там именно date, то и без минут будет пофигИ молиться, чтобы точность в процессе сопровождения/доработки системы не увеличилась до таймстампа.
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526144
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.SYУпс - мой SELECT не вернет клиентoв c SUM(COST) = 0
В моем случае это не важно, мне нужны только клиенты с ненулевыми агрегатами.
Однако мне казалось сомнительным создавать индекс на миллионной таблице под конкретный запрос.

как раз это нормальная практика
запросов так то по пальцам перечесть
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526178
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYtip78а если там именно date, то и без минут будет пофиг

Особенно когда получишь:

Код: plsql
1.
2.
3.
4.
5.
6.
SQL> select 1 from dual where sysdate BETWEEN '2017-07-01 00:00:00' AND '2017-09-31 23:59:59'
  2  /
select 1 from dual where sysdate BETWEEN '2017-07-01 00:00:00' AND '2017-09-31 23:59:59'
                                                                   *
ERROR at line 1:
ORA-01861: literal does not match format string



cтрока != дата, да и в сентябре 30 дней.

вообще-то =
по-крайней мере ищет всё ровно
ту же самую ошибку получите и без BETWEEN
и там также придётся писать added<='2017-09-30 23:59:59'
BETWEEN тупо удобнее
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526181
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadtip78это элементарно лечится:
Код: sql
1.
added BETWEEN '2017-07-01' AND '2017-09-31 23:59:59'


а если там именно date, то и без минут будет пофигИ молиться, чтобы точность в процессе сопровождения/доработки системы не увеличилась до таймстампа.
так вы можете минуты написать сразу, он сам разберётся
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526187
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78и там также придётся писать added<='2017-09-30 23:59:59'Ты неправильно понял альтернативу between-у и все посылы по поводу точности измерения времени.
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526193
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78SY...
cтрока != дата, да и в сентябре 30 дней.

вообще-то =
по-крайней мере ищет всё ровно
ту же самую ошибку получите и без BETWEEN
и там также придётся писать added<='2017-09-30 23:59:59'
BETWEEN тупо удобнее
Ты не понял.
Тупо - это не про between и не про <=.
Тупо - это про '2017-09-30 23:59:59', когда сравнение предполагается с датой.
От того что ты исправил 31 на 30 счастье может и не наступить.
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526346
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78SYпропущено...


Особенно когда получишь:

Код: plsql
1.
2.
3.
4.
5.
6.
SQL> select 1 from dual where sysdate BETWEEN '2017-07-01 00:00:00' AND '2017-09-31 23:59:59'
  2  /
select 1 from dual where sysdate BETWEEN '2017-07-01 00:00:00' AND '2017-09-31 23:59:59'
                                                                   *
ERROR at line 1:
ORA-01861: literal does not match format string



cтрока != дата, да и в сентябре 30 дней.

вообще-то =
по-крайней мере ищет всё ровно
ту же самую ошибку получите и без BETWEEN
и там также придётся писать added<='2017-09-30 23:59:59'
BETWEEN тупо удобнее

если дата с временем то есть нюанс в одну секунду
мне неудобно, надо приплетать 23:59:59

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> with t as (
  2  select to_date('26/09/2017 00:00:00','dd.mm.yyyy hh24:mi:ss') d from dual union all
  3  select to_date('26/09/2017 10:00:00','dd.mm.yyyy hh24:mi:ss') d from dual union all
  4  select to_date('26/09/2017 23:59:59','dd.mm.yyyy hh24:mi:ss') d from dual union all
  5  select to_date('27/09/2017 00:00:00','dd.mm.yyyy hh24:mi:ss') d from dual union all
  6  select to_date('27/09/2017 10:00:00','dd.mm.yyyy hh24:mi:ss') d from dual
  7  )
  8  select * from t where d between date '2017-09-26' and date '2017-09-27'
  9  /

D
-------------------
26.09.2017 00:00:00
26.09.2017 10:00:00
26.09.2017 23:59:59
27.09.2017 00:00:00



......
stax
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526389
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxмне неудобно, надо приплетать 23:59:59
ИМХО. в данном случае пишу
Код: plsql
1.
select * from t where d >=date '2017-09-26' and d<date '2017-09-27'


ну и
Код: plsql
1.
select date '2017-09-27'-interval '1' second from dual 


никто не отменял
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526407
1/86400
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй[/src]
ну и
Код: plsql
1.
select date '2017-09-27'-interval '1' second from dual 


никто не отменялиндекс на поле типа date не потеряется?
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526412
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййStaxмне неудобно, надо приплетать 23:59:59
ИМХО. в данном случае пишу
Код: plsql
1.
select * from t where d >=date '2017-09-26' and d<date '2017-09-27'


ну и
Код: plsql
1.
select date '2017-09-27'-interval '1' second from dual 


никто не отменял

да нет проблем, так и рисую >=, < (на крайняк -1/24/60/60)
я о between - мне неудобно

.....
stax
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526413
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1/86400,

нет
етож константное выражение

.....
stax
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526540
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyТы не понял.
Тупо - это не про between и не про <=.
Тупо - это про '2017-09-30 23:59:59', когда сравнение предполагается с датой.
От того что ты исправил 31 на 30 счастье может и не наступить.
так безпроблемно с датой сравнивается
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
# select abc from banks;
    abc
------------
 2017-09-26
 2017-08-30
(2 строки)

# select abc from banks where abc between '2017-08-30 05:2:33' and '2017-09-30 23:59:59';
    abc
------------
 2017-09-26
 2017-08-30
(2 строки)



31 и 30 вам придётся решать в любом случае, что с between, что без
я например это решаю ещё в ПХП:
Код: php
1.
date("'Y-m-t 23:59:59'",strtotime($y."-".$m."-01"))



Staxесли дата с временем то есть нюанс в одну секунду
мне неудобно, надо приплетать 23:59:59

а если не так, то упрётесь в 32е число. селяви )
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526559
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо же как тема пошла развиваться.
Если честно, то я для дат в жизни не использовал between, в примере я его указал лишь для краткости.
Потому что 23:59:59 — это тщательно заложенная мина на случай, когда учитываемая точность таймстампов станет меньше секунды.
И даже если использовать 23:59:59.999999, то что делать с 23:59:60 (координационной секундой)?
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526587
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78а если не так, то упрётесь в 32е число. селяви )
юзаю and <01

.....
stax
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526590
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Надо же как тема пошла развиваться.
Если честно, то я для дат в жизни не использовал between, в примере я его указал лишь для краткости.
Потому что 23:59:59 — это тщательно заложенная мина на случай, когда учитываемая точность таймстампов станет меньше секунды.
И даже если использовать 23:59:59.999999, то что делать с 23:59:60 (координационной секундой)?
для date 23:59:60 никак

авторПо всемирному координированному времени (UTC) 31 декабря 2016 года произойдет добавление одной секунды. По Гринвичу 31 декабря 2016 года после 23:59:59 наступит не 1 января 2017 года (со временем 00:00:00), а 23:59:60, пишет Quartz.

Код: plsql
1.
2.
3.
4.
5.
6.
  1* select to_date('31/12/2016 23:59:60','dd.mm.yyyy hh24:mi:ss') d from dual
SQL> /
select to_date('31/12/2016 23:59:60','dd.mm.yyyy hh24:mi:ss') d from dual
               *
ERROR at line 1:
ORA-01852: seconds must be between 0 and 59



.....
stax
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526598
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.то что делать с 23:59:60 (координационной секундой)?
а был ли мальчик ?
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526620
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййа был ли мальчик ?

Был, если moment не DATE а TIMESTAMP. B таком случае:

Код: plsql
1.
BETWEEN TIMESTAMP '2017-08-30 05:2:33' and TIMESTAMP '2017-09-30 23:59:59.999999999'



SY.
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526627
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYБыл, если moment не DATE а TIMESTAMP.
SY. так разговор в теме идет именно про дату :)
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526631
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

для TIMESTAMP по любому надо 999999999

да и скоко етих 9-к вбивать? гораздо удобнее вместо between пользовать <

61-секунду не получуть в базе, поетому "координационна секунда" пока не актульно

.....
stax
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526755
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxtip78а если не так, то упрётесь в 32е число. селяви )
юзаю and <01
ну ещё лучше, упрётесь в 13й месяц

StaxSY,

для TIMESTAMP по любому надо 999999999

да и скоко етих 9-к вбивать? гораздо удобнее вместо between пользовать <

61-секунду не получуть в базе, поетому "координационна секунда" пока не актульно
да откуда же вы такие извращённые костыли то достаёте ))
никогда не слышал
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526791
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78....
никогда не слышал
попробуй задуматься об этом.
настаивать на том, что нечто "tip78безпроблемно с датой сравнивается"
на основании личных наблюдений тебе преждевременно именно потому, что ты никогда не слышал .

Самое плохое, что с тобой приключилось в жизни до сих пор то, что твой код к сожалению работает в твоем окружении и ты, на голубом глазу, искренне веришь в то, что это написано правильно и так и надо писать "боевой" код.
Единственное возможное, но слабое оправдание твоему "видению мира" может быть в том, что в Oracle ты пришел из "другой системы", которая, может быть, действительно гарантирует правильное преобразование из строки указанного тобой вида к дате, и ты веришь, что это универсальная истина для всех систем.
Для Oracle это пример говнокода классически и наивного и чуждого, являющего точный маркер того, что навык написания sql приобретен не на запросах для Oracle.
И столько букв, сколько уже было потрачено, на него тратить не принято.
...
Рейтинг: 0 / 0
Есть ли смысл исключать из под суммирования нулевые поля?
    #39526799
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobytip78....
никогда не слышал
попробуй задуматься об этом.
настаивать на том, что нечто "tip78безпроблемно с датой сравнивается"
на основании личных наблюдений тебе преждевременно именно потому, что ты никогда не слышал .

Самое плохое, что с тобой приключилось в жизни до сих пор то, что твой код к сожалению работает в твоем окружении и ты, на голубом глазу, искренне веришь в то, что это написано правильно и так и надо писать "боевой" код.
Единственное возможное, но слабое оправдание твоему "видению мира" может быть в том, что в Oracle ты пришел из "другой системы", которая, может быть, действительно гарантирует правильное преобразование из строки указанного тобой вида к дате, и ты веришь, что это универсальная истина для всех систем.
Для Oracle это пример говнокода классически и наивного и чуждого, являющего точный маркер того, что навык написания sql приобретен не на запросах для Oracle.
И столько букв, сколько уже было потрачено, на него тратить не принято.
сынок, во1 не "ты", а "вы".
во2, "не слышал", потому что руки из прямого места. Никто не заставляет вас пихать таймстамп туда, где его нет. Тут человек придумывает костыли на ходу, может его парировать своим скиллом, без посредника в моём лице, вы нашли друг друга.
в3, читайте профиль.
и в4, то что вам дали потрогать чужую ораклю, ещё не делает вас сколь-нибудь опытным спецом, в конце-концов, это могла быть ошибка вашего нонешнего хозяина. А тем более демонстрировать свои скиллы в такой манере, это всё-равно что тявкать на ветер. Вы вроде как изящно прогавкались, но не впечатлили. Всем пох*й.
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Есть ли смысл исключать из под суммирования нулевые поля?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]