Member 13323381 Ответов: 0

Как сгруппировать (case) результаты операторов или объединить один из них?


Привет,

Как я могу объединить все это
CACSE(...)
результирующие строки объединяются в одну?
Кроме того, есть ли способ сгруппировать несколько операторов без добавления "MAX" в одну запись?

Пожалуйста, проверьте строки ниже, возможно, я ошибся с частью этого:

select				
max(case when source_column_a in (value_1) then value else null) as "value_a",				
(case when source_column_a in (value_2) then value else null) as "value_b",				
(case when source_column_a in (value_3) then value else null) as "value_c",				
max(case when source_column_a in (value_4) then value else null) as "value_d"				
from table				
group by ID, (case when source_column_a in (value_2) then value else null), (case when source_column_a in (value_3) then value else null);				
				
				
example result:				
	value_a	value_b	value_c	value_d
	Amax	(null)	(null)	Dmax
	(null)	B1	    (null)	(null)
	(null)	B2	    (null)	(null)
	(null)	B3	    (null)	(null)
	(null)	Bmax	(null)	(null)
	(null)	(null)	C1	    (null)
	(null)	(null)	C2	    (null)
	(null)	(null)	C3	    (null)
	(null)	(null)	Cmax	(null)
				
				
Results to achieve:				
	value_a	value_b	value_c	value_d
	Amax	Bmax	CMax	Dmax
	(null)	B3	    C3	    (null)
	(null)	B2	    C2	    (null)
	(null)	B1	    C1	    (null)
				
	value_a	value_b	value_c	value_d
	Amax	Bmax, B3, B2, B1	Cmax, C3, C2, C1	Dmax

С уважением,

Что я уже пробовал:

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

RossMW

Это может помочь, если вы приведете пример результата, который вы хотите.

Если вы пытаетесь получить результат обращения в поле, то используйте что-то вроде

Select CASE    WHEN Fieldname = 'A' THEN 1;    WHEN Fieldname = 'B' THEN 2;    WHEN fieldname = 'C' THEN 3;    End case;as Fieldname

Member 13323381

Пожалуйста, проверьте строки ниже, возможно, я ошибся с частью этого:

select				
max(case when source_column_a in (value_1) then value else null) as "value_a",				
(case when source_column_a in (value_2) then value else null) as "value_b",				
(case when source_column_a in (value_3) then value else null) as "value_c",				
max(case when source_column_a in (value_4) then value else null) as "value_d"				
from table				
group by ID, (case when source_column_a in (value_2) then value else null), (case when source_column_a in (value_3) then value else null);	
				
example result:				
	value_a	value_b	value_c	value_d
	Amax	(null)	(null)	Dmax
	(null)	B1	    (null)	(null)
	(null)	B2	    (null)	(null)
	(null)	B3	    (null)	(null)
	(null)	Bmax	(null)	(null)
	(null)	(null)	C1	    (null)
	(null)	(null)	C2	    (null)
	(null)	(null)	C3	    (null)
	(null)	(null)	Cmax	(null)
				
				
Results to achieve:				
	value_a	value_b	value_c	value_d
	Amax	Bmax	CMax	Dmax
	(null)	B1	    C1	    (null)
	(null)	B2	    C2	    (null)
	(null)	B3	    C3	    (null)
				
	value_a	value_b	value_c	value_d
	Amax	Bmax, B1, B2, B3	Cmax, C1, C2, C3	Dmax

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

0 Ответов