sql - Using Max() function to select group values -


i've got table this:

     sku    item      value     1503796 1851920 0,9770637     1503796 1636691 0,9747891     1503796 1503781 0,9741025     1503796 3205763 0,9741025     1503801 1999745 0,9776622     1503801 1999723 0,9718825     1503801 3651241 0,9348839     1503801 1773569 0,9331309     1503811 1439825 0,97053134     1503811 1636684 0,96297866     1503811 1636671 0,96003973     1503811 1600553 0,9535771     1503818 1636708 0,9440251     1503818 1636709 0,9440251     1503818 1779789 0,9423958     1503818 3322310 0,9369579 

i need output (grouped max value):

sku      item     value 1503796 1851920 0,9770637 1503801 1999745 0,9776622 1503811 1439825 0,97053134 1503818 1636708 0,9440251 

tried use smth this:

select sku, item, value import value=(select max(value) import ) 

but select 1 row max value. how rewrite query?

rank records row_number, max value sku gets #1. keep records ranked #1.

select sku, item, value (   select      mytable.*     row_number() on (partition sku order value desc) rn   mytable ) rn = 1; 

for sku 1503818 either of these two:

 1503818 1636708 0,9440251 1503818 1636709 0,9440251 

if want particular 1 (e.g. 1 higher item number) add criteria row_number's order clause.

as query tried yourself: should looking sku-value pairs instead:

select sku, item, value import (sku,value) in (select sku, max(value) import group sku); 

in case of tie, sku 1503818, query both records, however.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -