如何从 postgresql 中的查询中获取最小值、中位数和最大值?

2023-12-26

我编写了一个查询,其中一列是一个月。由此我必须得到最小月份、最大月份和中值月份。以下是我的查询。

select ext.employee,
       pl.fromdate,
       ext.FULL_INC as full_inc,
       prevExt.FULL_INC as prevInc,
       (extract(year from age (pl.fromdate))*12 +extract(month from age (pl.fromdate))) as month,
       case
         when prevExt.FULL_INC is not null then (ext.FULL_INC -coalesce(prevExt.FULL_INC,0))
         else 0
       end as difference,
       (case when prevExt.FULL_INC is not null then (ext.FULL_INC - prevExt.FULL_INC) / prevExt.FULL_INC*100 else 0 end) as percent
from pl_payroll pl
  inner join pl_extpayfile ext
          on pl.cid = ext.payrollid
         and ext.FULL_INC is not null
  left outer join pl_extpayfile prevExt
               on prevExt.employee = ext.employee
              and prevExt.cid = (select max (cid) from pl_extpayfile
                                 where employee = prevExt.employee
                                 and   payrollid = (
                                   select max(p.cid)
                                   from pl_extpayfile,
                                        pl_payroll p
                                   where p.cid = payrollid
                                   and   pl_extpayfile.employee = prevExt.employee
                                   and   p.fromdate < pl.fromdate
                                 )) 
              and coalesce(prevExt.FULL_INC, 0) > 0 
where ext.employee = 17 
and (exists (
    select employee
    from pl_extpayfile preext
    where preext.employee = ext.employee
    and   preext.FULL_INC <> ext.FULL_INC
    and   payrollid in (
      select cid
      from pl_payroll
      where cid = (
        select max(p.cid)
        from pl_extpayfile,
             pl_payroll p
        where p.cid = payrollid
        and   pl_extpayfile.employee = preext.employee
        and   p.fromdate < pl.fromdate
      )
    )
  )
  or not exists (
    select employee
    from pl_extpayfile fext,
         pl_payroll p
    where fext.employee = ext.employee
    and   p.cid = fext.payrollid
    and   p.fromdate < pl.fromdate
    and   fext.FULL_INC > 0
  )
)
order by employee,
         ext.payrollid desc

如果不可能,是否可以获得最大月份和最小月份?


计算中位数PostgreSQL,只需取 50% 的百分位数(不需要添加额外的函数或任何东西):

SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY x) FROM t;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 postgresql 中的查询中获取最小值、中位数和最大值? 的相关文章

随机推荐

  • Modernizr 如何做边框半径

    你能帮我解释一下吗Modernizr 如果我使用某个功能 例如 border radius 我使用旧版浏览器运行它 现代化者是否会自动将 css 添加到页面 或者我应该编写代码来呈现控件以使其看起来像有边框一样 如果第二种情况属实 那么我为
  • 如何验证历史数据?

    目前 我们正在使用日历实例读取日期 以便使用 SparkSQL 选取最后一个月的记录 现在我们需要 如果在前一天添加额外的事件 我们还必须能够手动插入摘要开始和结束日期 以防我们需要手动重新运行之前时间段的作业 例如 手动重新运行表可能如下
  • HTML5 和 RDFa 支持

    我即将向现有的 HTML5 Web 应用程序引入开放图谱协议 并且我希望包含必要的 RDFa 数据 而不引入任何不必要的杂项 我看过HTML RDFa 1 1 http www w3 org TR rdfa in html 草稿并与Face
  • CSS 中内嵌的 SVG 图像

    这是一个基本的 SVG 图像悬停动画 有没有一种编码方法可以避免编写 SVG 代码两次 body background color 181818 a webkit transition all 3s ease moz transition
  • Pandas Concat 遇到内存错误

    我正在尝试预处理数据以进行进一步分析 首先 我从 csv 文件 x 中读取数据 然后我把它分成三个部分 最后我需要使用转换一个数组get dummies concat and sum的结果groupby import pandas as p
  • Android 中的静音流

    我构建了一个小应用程序 可以使用该类将音乐流静音 取消静音AudioManager 事实上 它一直有效 直到我关闭应用程序 即 我已将流静音 关闭应用程序 重新启动应用程序 并且按钮不再取消流静音 我在网上搜索过 但似乎没有人遇到过这个问题
  • 我应该使用哪种分层模型?邻接、嵌套还是枚举?

    我有一个表 其中包含世界上所有地理位置及其关系的位置 这是一个显示层次结构的示例 您将看到数据实际上存储为所有三个 枚举路径 邻接表 嵌套集 数据显然也永远不会改变 以下是英国布莱顿地点的直系祖先的示例 该地点的 woeid 为 13911
  • 使用 PDO 处理错误的最佳实践

    Problem 寻找使用 PDO 进行错误处理的最佳实践 我在网站 SO 书籍等上找到的选项 许多网站表示您应该在您的catch block SO 上的大量用户表示 由于安全风险 您永远不应该回显错误消息 其他人建议将其记录到文档根目录之外
  • 从 R 中用户定义的语料库中删除停用词

    我有一组文件 documents c She had toast for breakfast The coffee this morning was excellent For lunch let s all have pancakes L
  • 在 C# 中每行读取一个字符串行[重复]

    这个问题在这里已经有答案了 可能的重复 在 net中以换行符分割字符串的最简单方法 https stackoverflow com questions 1547476 easiest way to split a string on new
  • Devise:突然无法登录了

    我正在使用 Devise 1 3 4 对我的应用程序中的后端进行身份验证 我已经连续几天无法登录了 发生的情况是 我进入登录页面 admin sign in 使用良好的凭据登录 在日志中看到登录成功 last sign in at curr
  • Spring MutableValues 的 NoSuchMethodError

    我编写了一个测试 在其中使用注释指定应用程序上下文位置 然后我将我的 dao 自动连接到测试中 ContextConfiguration locations file service src main webapp WEB INF appl
  • 单选按钮在 Safari 和 Chrome 中不显示

    我对 html 和 css 的了解有限 如果这是一个愚蠢的问题 请原谅 我尝试了不同的方法 但无法解决这个问题 http teddyslist com dev register php http teddyslist com dev reg
  • 从 XML 字符串生成 XML 架构

    我有一个 XML 字符串 想要加载到 Excel 工作表中 我几乎已经让它工作了 但我需要能够生成传递给 XmlMaps Add 的架构 String xml This is already populated with an XML St
  • 在 GAE 上,如何根据正确的客户端时区显示日期?

    在我的 Google App Engine 应用程序上 我在模型中存储自动更新的日期 时间 如下所示 class MyModel db Model date db DateTimeProperty auto now add True 但是
  • 如果在子进程执行时执行 Ctrl+C,Python 是否总是引发异常?

    给出以下代码 try subprocess Popen ExternalProcess stdout subprocess PIPE stderr subprocess PIPE shell True communicate except
  • 如何有效地获取 10% 的随机数,然后获取剩余 90 个随机数的 10% 等,直到所有点都分配完毕

    这就是我想做的 我有30万积分 我想要10 的积分 然后我想要剩下90 的点中的10 然后我想要剩余 81 点中的 10 然后我想要剩余 73 点中的 10 等等 直到我完成所有要点 这是最快的方法吗 all the points s np
  • .net 4.5 和实体框架中的 OUTER APPLY

    安装后 Net 4 5 EF 生成的查询存在问题 linq to 中的相同查询 Net 4 0工作正常 我正在使用 Firebird 数据库 它不支持命令OUTER APPLY 有没有办法修改以下查询 linq 以便它的行为 Net 4 5
  • 为什么我无法反序列化刚刚序列化的对象?

    Dim serialized Newtonsoft Json JsonConvert SerializeObject gridOrderNewState Dim gridOrderNewstate2 Newtonsoft Json Json
  • 如何从 postgresql 中的查询中获取最小值、中位数和最大值?

    我编写了一个查询 其中一列是一个月 由此我必须得到最小月份 最大月份和中值月份 以下是我的查询 select ext employee pl fromdate ext FULL INC as full inc prevExt FULL IN