我需要在一些参数中重新排序查询,并提取具有最低价格的唯一字段“文章”。
我应该按其他参数排序。
示例表:
article price id_item name partner weight 1000000001 500 1 Cake 1 sony 100 1000000001 1000 2 Cake 2 apple 100 1000000002 500 3 Beer 1 htc 100 1000000002 1000 4 Beer 2 htc 200
我需要通过其他参数(名称,价格,合作伙伴和其他......)排序这个结果:
按名称:
1000000002 500 3 Beer 1 htc 100 1000000001 500 1 Cake 1 sony 100
名称DESC:
1000000001 500 1 Cake 1 sony 100 1000000002 500 3 Beer 1 htc 100
由合作伙伴:
1000000002 500 3 Beer 1 htc 100 1000000001 500 1 Cake 1 sony 100
答案 0 :(得分:1)
您不必对数据进行分组并获得最小值。 distinct on
会将price
article
select distinct on (article)
article, price, id_item, name
from rurbox_mod_product.item
order by article, price
<强> sql fiddle demo 强>
如果要对结果集进行排序,可以使用公用表表达式或子查询,然后对结果进行排序:
with cte as (
select distinct on (article)
article, price, id_item, name
from item
order by article, price
)
select *
from cte
order by name;
select *
from (
select distinct on (article)
article, price, id_item, name
from item
order by article, price
) as A
order by name desc;
<强> sql fiddle demo 强>