如何对一个ID字段进行分组并选择另一个字段中具有最高值的行PostgreSQL

用户名

我不知道应该为我的问题什么标题(没关系)。下面给出的是我的选择查询

select gtab04.product,gtab05.productid,gtab05.mrp, gtab05.ptr,gtab05.ssr,gtab07.patent from gtab05 inner 
join gtab07 on gtab05.patentid=gtab07.patentid inner join gtab04 on 
gtab05.productid=gtab04.productid  where gtab05.qty-gtab05.iqty > 0 order by productid

这将返回500+行,请参见以下示例,

product           |productid   |mrp     |ptr  |ssr  |patent
------------------+------------+--------+-----+-----+----------------- 
IBUGESIC Plus Tab |200         |12.80000|9.85 |8.87 |CIPLA LTD 
ANGICAM 2.5 Tab   |267         |9.00000 |6.93 |6.44 |BLUE CROSS LABORATORIES 
ANGICAM 2.5 Tab   |267         |5.00000 |6.93 |6.24 |BLUE CROSS LABORATORIES 
ANGICAM 2.5 Tab   |267         |5.00000 |6.93 |6.44 |BLUE CROSS LABORATORIES 
ANGICAM 2.5 Tab   |267         |5.00000 |7.359|6.24 |BLUE CROSS LABORATORIES 
ANGICAM 5 Mg Tab  |268         |14.00000|10.78|10.03|BLUE CROSS LABORATORIES 
ANGICAM 5 Mg Tab  |268         |12.00000|11.44|9.7  |BLUE CROSS LABORATORIES 
ANGICAM BETA Tab  |269         |17.00000|13.09|12.17|BLUE CROSS LABORATORIES 
ANGICAM BETA Tab  |269         |15.00000|13.9 |11.78|BLUE CROSS LABORATORIES 
HIBESOR 25 TAB    |270         |9.00000 |6.93 |6.44 |BLUE CROSS LABORATORIES 

我想将以上结果修改如下。

product           |productid   |mrp     |ptr  |ssr  |patent
------------------+------------+--------+-----+-----+----------------- 
IBUGESIC Plus Tab |200         |12.80000|9.85 |8.87 |CIPLA LTD 
ANGICAM 2.5 Tab   |267         |9.00000 |6.93 |6.44 |BLUE CROSS LABORATORIES 
ANGICAM 5 Mg Tab  |268         |14.00000|10.78|10.03|BLUE CROSS LABORATORIES 
ANGICAM BETA Tab  |269         |17.00000|13.9 |11.78|BLUE CROSS LABORATORIES 
HIBESOR 25 TAB    |270         |9.00000 |6.93 |6.44 |BLUE CROSS LABORATORIES 
  • 我的标准:需要GROUP productid并且从每个product拥有max(mrp)


到目前为止我尝试过的。

    With cte as (
    select gtab04.product,gtab05.productid,gtab05.mrp, gtab05.ptr,gtab05.ssr,patent from gtab05 
    inner join gtab07 on gtab05.patentid=gtab07.patentid inner join gtab04 on 
    gtab05.productid=gtab04.productid  where qty-iqty > 0 order by productid limit 10
    )
    select productid,max(cte.mrp) as mrp  from cte group by productid order by  productid
    )

         RESULT
    --------------
   productid | mrp
          200|12.80000
          267|9.00000
          268|14.00000
          269|17.00000
          270|9.00000

克洛多尔多·内托

distinct on 结合 order by

select distinct on (productid) 
    gtab04.product,
    productid,
    gtab05.mrp,
    gtab05.ptr,
    gtab05.ssr,
    patent
from
    gtab05
    inner join
    gtab07 using(patentid)
    inner join
    gtab04 using(productid)
where qty-iqty > 0
order by productid, gtab05.mrp desc

如果还有其他解开条件,则将其添加到order by子句中

http://www.postgresql.org/docs/current/static/sql-select.html#SQL-DISTINCT

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从表中选择数据,在该表中我需要返回在一个字段中具有重复值而在另一个字段中具有指定值的行?

来自分类Dev

将一个字段与另一个字段的所有值分组

来自分类Dev

如何读取名称在另一个字段中的行字段的值

来自分类Dev

查询以获取按字段值分组的所有行以及另一个字段的条件

来自分类Dev

获取一个字段的最大值,但仅针对另一个字段中具有相同值的其他文档

来自分类Dev

日期字段的最大值到Postgresql中的另一个字段

来自分类Dev

日期字段的最大值到Postgresql中的另一个字段

来自分类Dev

如何计算具有相同值的文档数,并使用mongoDB中的另一个字段将它们分组?

来自分类Dev

如何按字段分组列表,并通过linq选择另一个字段的分组min?

来自分类Dev

基于行总和与另一个字段值比较的mySQL选择

来自分类Dev

访问报告:如何对一个字段进行分组,但按另一个字段排序?

来自分类Dev

如何在oracle中按某些字段分组并显示另一个字段的第一个值?

来自分类Dev

在Access VBA中从具有唯一编号的另一个字段值创建串联代码

来自分类Dev

检查一个字段的值是否在另一个字段中

来自分类Dev

Rails会验证一个字段值,除非另一个字段具有值

来自分类Dev

从另一个表的另一个字段中选择表中的字段

来自分类Dev

选择一个字段的值,其中另一个字段等于rails中的值

来自分类Dev

如何进行Postgresql组聚合:2个字段使用一个选择另一个

来自分类Dev

如何在一个字段或另一个字段中具有值的mongo和group记录中将$ group和$ or组合在一起?

来自分类Dev

为csv文件中的另一个字段标识具有特殊字符的值

来自分类Dev

如何查询在另一个字段中与该行的值共享相同值的所有值?

来自分类Dev

HIVE试图加入一个字段并从另一个选择语句字段中减去一个字段

来自分类Dev

如何使用Spring Mongo对两个字段进行分组并根据另一个字段获得一个数组?

来自分类Dev

如何从MySql中的另一个字段派生的文件的值

来自分类Dev

如何从MySql中的另一个字段派生的文件的值

来自分类Dev

如何查找一个字段的值与另一个字段的值匹配的所有文档

来自分类Dev

根据MongoDB中的另一个字段有选择地返回一个字段

来自分类Dev

在PostgreSQL中插入行时,如何基于另一个字段自动设置一个字段?

来自分类Dev

如何在mongodb中对一个字段值进行分组并对另一字段进行排序

Related 相关文章

  1. 1

    如何从表中选择数据,在该表中我需要返回在一个字段中具有重复值而在另一个字段中具有指定值的行?

  2. 2

    将一个字段与另一个字段的所有值分组

  3. 3

    如何读取名称在另一个字段中的行字段的值

  4. 4

    查询以获取按字段值分组的所有行以及另一个字段的条件

  5. 5

    获取一个字段的最大值,但仅针对另一个字段中具有相同值的其他文档

  6. 6

    日期字段的最大值到Postgresql中的另一个字段

  7. 7

    日期字段的最大值到Postgresql中的另一个字段

  8. 8

    如何计算具有相同值的文档数,并使用mongoDB中的另一个字段将它们分组?

  9. 9

    如何按字段分组列表,并通过linq选择另一个字段的分组min?

  10. 10

    基于行总和与另一个字段值比较的mySQL选择

  11. 11

    访问报告:如何对一个字段进行分组,但按另一个字段排序?

  12. 12

    如何在oracle中按某些字段分组并显示另一个字段的第一个值?

  13. 13

    在Access VBA中从具有唯一编号的另一个字段值创建串联代码

  14. 14

    检查一个字段的值是否在另一个字段中

  15. 15

    Rails会验证一个字段值,除非另一个字段具有值

  16. 16

    从另一个表的另一个字段中选择表中的字段

  17. 17

    选择一个字段的值,其中另一个字段等于rails中的值

  18. 18

    如何进行Postgresql组聚合:2个字段使用一个选择另一个

  19. 19

    如何在一个字段或另一个字段中具有值的mongo和group记录中将$ group和$ or组合在一起?

  20. 20

    为csv文件中的另一个字段标识具有特殊字符的值

  21. 21

    如何查询在另一个字段中与该行的值共享相同值的所有值?

  22. 22

    HIVE试图加入一个字段并从另一个选择语句字段中减去一个字段

  23. 23

    如何使用Spring Mongo对两个字段进行分组并根据另一个字段获得一个数组?

  24. 24

    如何从MySql中的另一个字段派生的文件的值

  25. 25

    如何从MySql中的另一个字段派生的文件的值

  26. 26

    如何查找一个字段的值与另一个字段的值匹配的所有文档

  27. 27

    根据MongoDB中的另一个字段有选择地返回一个字段

  28. 28

    在PostgreSQL中插入行时,如何基于另一个字段自动设置一个字段?

  29. 29

    如何在mongodb中对一个字段值进行分组并对另一字段进行排序

热门标签

归档