我有表productos
:
nombre Precio Tienda Departamento
A 23 Belén Hogar
B 12 Belén Hogar
C 56 Belén Hogar
C 32 Terra Hogar
D 10 Belén Hogar
E 8 Belén Hogar
E 9 Terra Hogar
我需要选择表productos
上的所有条目,但是对于具有多个条目的产品,我希望价格最高的产品,无论它是否在同一个tienda
上。
答案 0 :(得分:0)
select p.*
from productos p
join (select nombre, max(precio) as max_precio
from productos
group by nombre) v
on p.nombre = v.nombre
and p.precio = v.max_precio
以下内容将消除Oracle或SQL Server或PostgreSQL中的联系(如果您未使用Oracle或SQL Server,请指定您正在使用的数据库):
select *
from (select nombre,
precio,
tienda,
departamento,
row_number() over(partition by nombre order by nombre, precio desc, tienda, departamento) as rn
from productos) x
where rn = 1
消除领带的小提琴示例: http://sqlfiddle.com/#!6/6b40d/4/0