【问题标题】:Percent rank won't go up to 1百分比排名不会上升到 1
【发布时间】:2021-04-12 08:59:38
【问题描述】:

我写了一些类似的东西

percent_rank() over (partition by (case when date is not null then 1 else 0 end) order by ID ) AS percent_rank

我的结果只是从 0 到 0.17 而不是 0 到 1。有人可以告诉我哪里出错了。

谢谢。

【问题讨论】:

  • 这能解决您的问题吗? dba.stackexchange.com/questions/144009/…
  • 它不能解决问题。
  • 我删除了冲突的 DBMS 标签。请为您真正使用的数据库产品添加一个标签。
  • 嗨,苏利。你能包括一个证明问题的最小数据集吗?我的意思是:在表中添加创建/插入语句,然后包含从该表中选择的查询。

标签: sql window-functions


【解决方案1】:

问题是重复的。这意味着大约 83% 的数据都具有最高价值。

Here 是一个简单的 dbfiddle 说明问题。

我怀疑涉及NULL 值。您正在测试NULLs——但这不在用于订购的列中。

【讨论】:

  • 我想你就在这里。修复它的最佳方法是什么?
  • @Sully 。 . .这回答了您在这里提出的问题。提出一个新的问题,其中包含示例数据、期望的结果以及您想要实现的逻辑的解释。显然不是percent_rank()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多