Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
Как может не попасть в выборку min и max

min по всей таблице.



А попасть только при указании фильтра по дате?


--по всей таблице
SELECT  max(id) max_id, min(id) min_id FROM ProcTable --(nolock)
WHERE Type=100
GROUP BY Type

10500  99000



--добавляю дату
SELECT  max(id) max_id, min(id) min_id FROM ProcTable --(nolock)
WHERE Type=100
AND DataB > '20170609 12:00'
GROUP BY Type

100500  100
9 июн 17, 12:39    [20552819]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
99000

и

100


интересуют значения
9 июн 17, 12:40    [20552823]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
Разные таблицы/базы/сервера.
9 июн 17, 12:42    [20552833]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Добрый Э - Эх
Guest
Колян Козлов,

поле ID какой тип данных имеет?
9 июн 17, 12:44    [20552838]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
КусокАналитика
Guest
id - что это, какой тип?

В первом сообщении должно было быть: 100500 99000?
9 июн 17, 12:44    [20552839]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
msLex
Member

Откуда:
Сообщений: 8091
Колян Козлов
GROUP BY Type

а это зачем?

если у вас несколько "типов", то должно быть более одной строки в резалтсете.
9 июн 17, 12:45    [20552845]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Добрый Э - Эх
Guest
msLex,

откуда более одной строки если в WHERE вполне себе однозначно указано type = 100 ?
9 июн 17, 12:46    [20552853]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
msLex
Member

Откуда:
Сообщений: 8091
Добрый Э - Эх
msLex,

откуда более одной строки если в WHERE вполне себе однозначно указано type = 100 ?

да, не заметил

все равно группировка выглядит лишней.
9 июн 17, 12:48    [20552865]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
Гавриленко Сергей Алексеевич
Разные таблицы/базы/сервера.


не, в одном окне SSMS
9 июн 17, 12:56    [20552900]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
КусокАналитика
id - что это, какой тип?

В первом сообщении должно было быть: 100500 99000?


да
9 июн 17, 12:56    [20552902]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
Добрый Э - Эх
msLex,

откуда более одной строки если в WHERE вполне себе однозначно указано type = 100 ?



type = 100 имеют мнгого записей
9 июн 17, 12:57    [20552909]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1723
Тип поля id какой? И какой у него collation?
9 июн 17, 13:00    [20552917]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Добрый Э - Эх
Guest
Колян Козлов
Добрый Э - Эх
msLex,

откуда более одной строки если в WHERE вполне себе однозначно указано type = 100 ?



type = 100 имеют мнгого записей
в контексте group by это не имеет никакого значения, ибо все строки с type=100 соберутся в одну единственную при наличии записей и в пустой множество при их отсутствии. в любом случае на выходе именно этого запроса более одной строки никогда не получится...
9 июн 17, 13:00    [20552918]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1723
как вариант - значение добавили, пока второй запрос создавался.
9 июн 17, 13:00    [20552926]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Добрый Э - Эх
Guest
DaniilSeryi
Тип поля id какой? И какой у него collation?
да символьный тип там у него. к гадалке не ходи...
9 июн 17, 13:01    [20552928]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
Добрый Э - Эх
Колян Козлов
пропущено...



type = 100 имеют мнгого записей
в контексте group by это не имеет никакого значения, ибо все строки с type=100 соберутся в одну единственную при наличии записей и в пустой множество при их отсутствии. в любом случае на выходе именно этого запроса более одной строки никогда не получится...


Это да.

Однако при уибирании type=100 для type=100 все равно показывает так же.
9 июн 17, 13:02    [20552934]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Сдаётся мне, нам не всё показывают
9 июн 17, 13:02    [20552936]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
Добрый Э - Эх
DaniilSeryi
Тип поля id какой? И какой у него collation?
да символьный тип там у него. к гадалке не ходи...



int
9 июн 17, 13:03    [20552940]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
DaniilSeryi
как вариант - значение добавили, пока второй запрос создавался.


тоже так думал, но результат стабилен.
9 июн 17, 13:03    [20552942]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
Я даже в ручную значения просмотрел:

SELECT  id FROM ProcTable 
WHERE Type=100
AND DataB > '20170609 12:00'




там действительно есть значения 100, 101 и тп.



SELECT  max(id) max_id, min(id) min_id FROM ProcTable --(nolock)
WHERE Type=100
GROUP BY Type



Показывает min 99000
9 июн 17, 13:07    [20552961]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Например, 100 во втором результате может быть просто обрезанная строка 100500.
Ибо только такую строку сегодня после полудня и добавили.
9 июн 17, 13:07    [20552972]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Колян Козлов,

кстати, COUNT(*) бы ещё посмотреть
9 июн 17, 13:08    [20552977]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отрабатывает MIN и MAX почему?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 98
Мужики, оказалось индекс порушился втабличке, после перестройки все норм.



Такие дела.



Спасибо за внимание.
9 июн 17, 13:23    [20553063]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить