Size: a a a

DBA - русскоговорящее сообщество

2020 December 17

LS

Lev Shagalov in DBA - русскоговорящее сообщество
Ну да, интересовал вопрос с индексами
источник

LS

Lev Shagalov in DBA - русскоговорящее сообщество
Типа.... если ему так уж надо - пусть подождет)
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Lev Shagalov
Типа.... если ему так уж надо - пусть подождет)
Или не подождёт (от размера таблиц зависит же).
источник

B

Bu in DBA - русскоговорящее сообщество
Всем привет! есть немного странный вопрос, у меня есть набор запросов(можно на примере одного запроса), как мне узнать время их выполнения и вывести его в результат\сохранить во временную таблицу
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Bu
Всем привет! есть немного странный вопрос, у меня есть набор запросов(можно на примере одного запроса), как мне узнать время их выполнения и вывести его в результат\сохранить во временную таблицу
Это полностью зависит от используемой СУБД.
Обычно есть какие-то command line tools, которым можно указать файл; бывает, что и стандартный GUI такое сразу умеет.
источник

B

Bu in DBA - русскоговорящее сообщество
ой простите MS-sql 2017
источник

B

Bu in DBA - русскоговорящее сообщество
нашел решение
источник

B

Bu in DBA - русскоговорящее сообщество
DECLARE @StartTime datetime,@EndTime datetime  
SELECT @StartTime=GETDATE()

--указать запрос

SELECT @EndTime=GETDATE()  
SELECT DATEDIFF(ms,@StartTime,@EndTime)
источник

B

Bu in DBA - русскоговорящее сообщество
но это применимо для одного запроса, а если их 10,20,50?
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Bu
но это применимо для одного запроса, а если их 10,20,50?
То в SSMS была такая настройка (но, кажется, не очень удобная). Ну и в sqlcmd тоже, вроде, что-то было.
источник

Л

Лучший ник in DBA - русскоговорящее сообщество
ребят
источник
2020 December 18

ИИ

Иван Иванов... in DBA - русскоговорящее сообщество
Всем привет!
Подскажите или подтолкните на мысль, пожалуйста(sqlite)
Как правильно группировать запросы по нескольким полям и по нескольким средним?
Как пример:
ActivityGroup содержит тип активности(бег, чтение, медитация)
Activity содержит саму активность(рейтинг, коментарий) и ссылку на тип, которомы она пренадлежит
ActivityInterval содержит начало и конец интервала в приделах одной активнонсти(интервалов у активнсти может быть много, так как можно поставить на паузу)
IndicatorData это как раз значение, полученное с датчика в пределах [0, 10], дату, когда получено и тип(типа индикаторов - 4 штуки)
Что пытаюсь сделать:
Пытаюсь выбрать для конкретной активности все интервалы, во всех интервалах найти индикаторы и посчитать среднее по всем 4-ем индикаторам
Что не получается: правильно сгруппировать запросы, постоянно считает неправильное среднее
https://i.ibb.co/yqxNryk/Screenshot-2020-12-17-at-22-54-37.png
источник

ИИ

Иван Иванов... in DBA - русскоговорящее сообщество
`select A.id, avg(ID.value)
from Activity A
        left join ActivityInterval AI on A.id = AI.activityId
        left join IndicatorData ID
                  on datetime(ID.time, 'localtime') BETWEEN datetime(AI.startTime, 'localtime') AND datetime(AI.endTime, 'localtime')
where A.id = 4
group by ID.indicator
`
Выбираю все активности, джойню к каждой активности временной интервал по ключу, нахожу IndicatorData внутри интервало интервалов, беру среднее по индикатору
Работает, но только если я указываю конкретную активность, без нее средний показатель неправильно
Среднее выводит как повторяющяяся строка, я хотелось бы просто добавить 4 столбца
источник

АА

Андрей Агеев... in DBA - русскоговорящее сообщество
по нескольким это наверное либо подзапросами, либо оконными
источник

АА

Андрей Агеев... in DBA - русскоговорящее сообщество
но я не очень вкурил суть
источник

А

Александр (Alex)... in DBA - русскоговорящее сообщество
Добрый вечер. подскажите какой оператор цикла while в ms sql заставляет выполнить всю итерацию и только потом приступить к следующей ?
источник

Л

Лучший ник in DBA - русскоговорящее сообщество
Здравствуйте!
Есть поле название товара и цена.
При помощи функции МИН я вывожу минимальную цену со списка товаров, но не могу вывести название этого минимального товара.
Появляется ошибка "Поле "Название товара" не является частью агрегатной функции.
источник

АА

Андрей Агеев... in DBA - русскоговорящее сообщество
Лучший ник
Здравствуйте!
Есть поле название товара и цена.
При помощи функции МИН я вывожу минимальную цену со списка товаров, но не могу вывести название этого минимального товара.
Появляется ошибка "Поле "Название товара" не является частью агрегатной функции.
select t.* from t where t.id=(select top(1) x. id from t x order by price)
источник

АА

Андрей Агеев... in DBA - русскоговорящее сообщество
но есть ньюансы - если товаров нужно несколько с такой мин ценой, то надо не так
источник

АА

Андрей Агеев... in DBA - русскоговорящее сообщество
что то типа select top(1) with ties либо rank()...
источник