Я пытаюсь воссоздать некоторую формулу Excel в Netezza Aginity SQL, чтобы обработка могла выполняться на уровне базы данных, но при этом возникают проблемы с индексами.
Формула примерно:
If( Countifs( policycolumn, policy, matchcolumn, "Match", codecolumn, code) >0, "true", "false")
Так что, если есть строки, соответствующие политике, «соответствию» и коду, оно будет больше 0 и будет истинным. Я просто борюсь с частью политики colimn, поскольку политика для подсчета - это политика из этой строки.
Есть ли способ, которым люди использовали что-то, чтобы имитировать показы в sql?
Изменить: Чтобы привести несколько примеров, мой набор данных выглядит следующим образом: (извините, я плохо с форматированием):
policycolumn | matchcolumn | codecolumn
12345 | match | c
12345 | no match | d
9876 | match | c
9876 | no match | c
Я хотел бы иметь дополнительный столбец, который бы показывал
policycolumn | matchcolumn | codecolumn | yesno
12345 | match | c | yes
12345 | no match | d | no
9876 | match | c | yes
9876 | match | d | no
Строка 1 будет "да", потому что она подсчитывает количество раз, когда появляется 12345, с "match" и "c". Эта строка совпадает с тем, что будет> 0 и вызовет правило IF, которое будет «да»
ROw 2 не будет положительным, потому что, хотя его номер политики 12345, это "нет совпадения" и "d".
Строка 3 была бы положительной, потому что политика строки 9876 - это «соответствие» и «с».
Строка 4 не является положительной, потому что политика строки 9898 - это «нет совпадения».
Все критерии (Match Column = match и Codecolumn = c) должны быть выполнены, чтобы эта строка была истинной, а для нового столбца было установлено значение "yes".