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
Post a Comment