sql - Select MAX and MIN from multiple columns -


i can max() , min() multiple columns in same table this:

select     max(maximo) maximo,     min(minimo) minimo from(     select         max(column1) maximo,         min(column2) minimo     table1             cond1= 'a' ,         cond2= 'x'     union     select         max(column3) maximo,         min(column4) minimo     table1             cond1= 'a' ,         cond2= 'x'     union     select         max(column5) maximo,         min(column6) minimo     table1             cond1= 'a' ,         cond2= 'x'     union     select         max(column7) maximo,         min(column8) minimo     table1             cond1= 'a' ,         cond2= 'x' ) x 

but looks ugly. trying use unpivot:

select     min (v) minvalue,     max (v) maxvalue     table1 unpivot (         v nvalue in (             column1,             column2,             column3,             column4,             column5,             column6,             column7,             column8         )     ) u 

and receiving following error:

[err] 42000 - [sql server]incorrect syntax near keyword 'for'. 

what should be? thanks.

seems can write using cross apply values final result:

select maximo = max(maxval),    minimo = min(minval) table1 t cross apply (   values     (column1, column2),     (column3, column4),     (column5, column6),     (column7, column8) ) c (maxval, minval) t.cond1= 'a'   , t.cond2= 'x'; 

see sql fiddle demo. unpivots pairs of columns , can grab max/min of each column.


Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -