как найти максимум группы строк в определенном столбце, который удовлетворяет условию в tibco Spotfire

Я хочу найти максимум группы строк в определенном столбце, который удовлетворяет условию в TIBCO Spotfire. Например, рассмотрим таблицу ниже:

col 1|col 2|col 3
  1  |  2  |  y  
  1  |  3  |  y  
  1  |  6  |  y  
  1  |  8  |  n  
  1  |  7  |  n  
  1  |  6  |  y  
  2  |  2  |  y  
  2  |  10 |  y  
  2  |  6  |  y  
  2  |  9  |  n  
  2  |  7  |  y  
  2  |  6  |  n  

Я хочу сгруппировать все строки с [col 1] = 1 и найти максимальное значение столбца 2, учитывая только те строки, которые имеют [col 3] = "y".

Моя финальная таблица должна выглядеть так:

col 1|col 2|col 3|col 4
  1  |  2  |  y  | 6
  1  |  3  |  y  | 6
  1  |  6  |  y  | 6
  1  |  8  |  n  | 6
  1  |  7  |  n  | 6
  1  |  6  |  y  | 6
  2  |  2  |  y  | 10
  2  |  10 |  y  | 10
  2  |  6  |  y  | 10
  2  |  9  |  n  | 10
  2  |  7  |  y  | 10
  2  |  6  |  n  | 10

Может ли кто-нибудь помочь мне с этим?


person Kural Manivannan    schedule 13.04.2016    source источник
comment
я создал один столбец, который находит максимум, а затем с ним фактический столбец, который мне нужен, но я хотел обойтись без использования этого дополнительного столбца, потому что я использую эту логику много раз, поэтому в итоге я создал 40+ рассчитанных столбцы.   -  person Kural Manivannan    schedule 14.04.2016


Ответы (3)


Сначала (случай, когда [col 3]="y", затем Max([col 2]) OVER ([col 1]) end) OVER ([col 1]) должно помочь (версия 7.5).

Спасибо!

person Monte_fisto    schedule 02.05.2016

Я придумал кое-что, похожее на то, что вы уже пробовали, но вот.

  1. Вставить вычисляемый столбец: CASE WHEN [col 3]="y" THEN Max([col 2]) OVER ([col 1]) END AS [calc]
  2. Вставить вычисляемый столбец: Max([calc]) OVER ([col 1]) AS [col 4]

Это дает мне значение в [col 4], которое вы искали.

Результаты вычисляемого столбца

person AmbivalentGeek    schedule 14.04.2016
comment
Да, это то, что я сделал, но в итоге у меня слишком много вычисляемых столбцов, так как я хочу использовать эту логику несколько раз. В любом случае, спасибо за помощь, я все еще пытаюсь найти способ, если я это сделаю, я поделюсь. - person Kural Manivannan; 14.04.2016

@monte_fisto в аналогичном случае можем ли мы определить минимум и максимум столбца2

person raghu veer    schedule 16.02.2021