2016-08-22 3 views
-2

У меня есть запрос TSQL, который дает максимальное значение данных тренда для данного набора результатов. Я хотел бы получить эти данные на основе результатов каждого месяца. (У меня есть столбец datetime в результирующем наборе). Если я выберу данные в течение трех месяцев, он должен дать этот вауль за каждый месяц. Сейчас он ищет максимальные значения и дает одинаковый результат за все месяцы.Получить MAX значение группы за каждый месяц TSQL

Ниже приведено выражение, которое я использую для получения результата тренда. Это часть оператора select с количеством других столбцов.

select col1, col2, sampledatecollected, (Select MAX(AvailMemSlope) FROM SlopeCTE) * MetricID + (Select MAX (AvailMemIntercept) FROM InterceptCTE) AS AvailMemTrend 

Я думаю, что я, возможно, нужно сделать что-то подобное, но, учитывая выражение я немного запутался, как получить желаемые результаты

select name, max(value) 
from tbl1 
group by name 

CPUTrend идентификатор данных я получить из выражения i указан в первом запросе.

выборка данных:

Date  AVGCPU MAXCPU CPUTrend 
8/22/2016 20  40  44 
8/23/2016 20  40  44 
8/24/2016 20  40  44 
8/25/2016 20  40  44 
9/22/2016 20  50  44 
9/23/2016 20  50  44 
9/24/2016 20  50  44 

Ожидаемый результат:

Date  AVGCPU MAXCPU CPUTrend 
8/22/2016 20  40  32 
8/23/2016 20  40  32 
8/24/2016 20  40  32 
8/25/2016 20  40  32 
9/22/2016 20  50  44 
9/23/2016 20  50  44 
9/24/2016 20  50  44 

Прямо сейчас все, что я получаю 44, как это максимальное значение.

+0

пожалуйста показать некоторые примеры данных и ожидаемый результат – TheGameiswar

+0

@TheGameiswar я добавил несколько деталей в этом вопросе. Пожалуйста, проверьте – Ramya

+0

, пожалуйста, отправьте данные текущего образца – TheGameiswar

ответ

0

Я думаю, что вы просто хотите подзапрос:

with t as (
     select col1, col2, sampledatecollected, 
      (Select MAX(AvailMemSlope) FROM SlopeCTE) * MetricID + 
      (Select MAX (AvailMemIntercept) FROM InterceptCTE) AS AvailMemTrend 
     from ?? -- the SQL in your question is incomplete 
    ) 
select year(sampledatecollected), month(sampledatecollected), 
     max(AvailMemTrend) 
from t 
group by year(sampledatecollected), month(sampledatecollected) 
order by year(sampledatecollected), month(sampledatecollected); 
Смежные вопросы