rank() OVER (PARTITION BY f1 ORDER BY f2 DESC) 
ROW_NUMBER() () OVER (PARTITION BY f1 ORDER BY f2 DESC) 
为每个匹配的f1字段生成一个行号,并按照f2排序 例子
select DID,customerID,totalPrice,ROW_NUMBER() over(order by totalPrice) as rows from OP_Order

aaarticlea/png;base64,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" alt="" />

可以用户讲多列的数据排序后横向比较,例如,oe的一个询价单,向多个供应商询价后,需要取前3个供应商价格横列显示。
select
product_id,
product_qty,
max(part1) as parter1,
max(price1) as price1,
max(part2) as parter2,
max(price2) as price2,
max(part3) as parter3,
max(price3) as price3
from(
select
product_id, product_qty,
case when abc=1 then partner_id end as part1,
case when abc=2 then partner_id end as part2,
case when abc=3 then partner_id end as part3,
case when abc=1 then price_unit end as price1,
case when abc=2 then price_unit end as price2,
case when abc=3 then price_unit end as price3
from (
select
pol.id, pol.product_id, pol.partner_id, product_qty , pol.price_unit,
rank() OVER (PARTITION BY pol.product_id order by pol.partner_id) as abc
from
purchase_requisition as rq
left join purchase_order as po on (po.requisition_id = rq.id)
left join purchase_order_line as pol on (pol.order_id = po.id)
where rq.id = 44
) as t
) as tt group by product_id,product_qty

结果如下:

psql rank row的更多相关文章

  1. 【线性代数】3-3:秩(Rank)

    title: [线性代数]3-3:秩(Rank) categories: Mathematic Linear Algebra keywords: Rank Row Reduced form Pivot ...

  2. 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  3. 【原创】开源.NET排列组合组件KwCombinatorics使用(二)——排列生成

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  4. 【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  5. Python批量处理CSV文件

    #encoding: utf-8 __author__ = 'DELL' import csv import glob import datetime import sys import os rel ...

  6. Sqlite 快速插入数据到本地表中

    用原始Insert方法太慢,网上找到了https://www.cnblogs.com/yisen-code/p/6897524.html 思路是: 开启事务,开启预处理,然后把SQL用参数传入具体值来 ...

  7. Python的工具包[1] -> pandas数据预处理 -> pandas 库及使用总结

    pandas数据预处理 / pandas data pre-processing 目录 关于 pandas pandas 库 pandas 基本操作 pandas 计算 pandas 的 Series ...

  8. 一步步走向国际乱码大赛-- 恶搞C语言

    大家都一直强调规范编码.可是这个世界上有个大师们娱乐的竞赛--国际乱码大赛. 能写出来的都是对语言深入了解的master.我从没想自己也能"恶搞"C,一直都是老老实实编码.就在前几 ...

  9. PostgreSQL Replication之第五章 设置同步复制(1)

    到目前为止,我们已经处理了基于文件的复制(或日志传送)和简单的基于流复制的设置.在两种情况中,在master上事务被提交之后,数据被提交,由slave接收.在master提交和slave实际上完全地接 ...

随机推荐

  1. hdoj 1969 Pie【二分】

    Pie Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  2. N2N 对等VPN网络

    n2n是一个二层的虚拟专网,允许用户开发网络中典型的P2P应用而不是在应用层开发.这就意味着用户可以透明的得到本地地址,只要新的IP地址在一个子网内,无论两台机器处于什么位置都能够ping通对方. N ...

  3. C# 实现关闭按钮隐藏窗体而不退出

    private void OpenNewMxdFrm_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; thi ...

  4. php类获取静态变量值以及调用

    <?php class Test{ public static $static_var = 20; } echo Test::$static_var;exit;

  5. 用的最多的Android Studio 快捷键

    1.Ctrl+D,Ctrl+C 复制删除整一行 2.Ctrl+Alt+L 格式化代码 看起来更好看 3.Ctrl+Q 查看函数API定义 4.Atl+方向键 切换不同文档 平时用快捷键能够提高效率,少 ...

  6. PHP面向对象之旅:模板模式(转)

    抽象类的应用就是典型的模版模式 抽象类的应用就是典型的模版模式,先声明一个不能被实例化的模版,在子类中去依照模版实现具体的应用. 我们写这样一个应用: 银行计算利息,都是利率乘以本金和存款时间,但各种 ...

  7. syslog实例详解rsyslog

    http://blog.csdn.net/chenhao112358/article/details/40892239http://www.cnblogs.com/blueswu/p/3564763. ...

  8. 用 Qt 中的 QDomDocument类 处理 XML 文件(上)

      我们可以看到,如果所要读取的XML文件不是很大,采用DOM读取方法还是很便捷的,由于我用的也是DOM树读取的方法,所以,本文所介绍的也主要是基于DOM的方法读取. 根据常用的操作,我简单的把对XM ...

  9. MySQL Handling of GROUP BY--官方文档

    In standard SQL, a query that includes a GROUP BY clause cannot refer to nonaggregated columns in th ...

  10. Python获取Origin官网视频

    程序说明:最近学习origin,看到官网有入门视频(http://www.originlab.com/index.aspx?go=SUPPORT/VideoTutorials),看着挺多的,就用pyt ...