计算特定名称的行数

Posted

技术标签:

【中文标题】计算特定名称的行数【英文标题】:Counting rows for a particular name 【发布时间】:2019-01-21 06:15:57 【问题描述】:

我有一个表 temp(name int,count int)。它存储:-

a|count
1|10
1|8
1|4
1|2
2|10
2|6
2|1

我希望它的行被编号,对应于给定的名称(另外,请注意计数必须按降序排列),即:-

a|count|row
1|10   |1
1|8    |2
1|4    |3
1|2    |4
2|10   |1
2|6    |2
2|1    |3

我试过How to show row numbers in PostgreSQL query? 这个帖子,但它似乎只是从 1 到 7 编号而不是按名称。有人可以帮我吗?谢谢!

【问题讨论】:

【参考方案1】:

使用 row_number() 函数

select a, count, row_number() over(partition by a order by count desc) as rn
from tablename

【讨论】:

我在 SO 和 mathsSE 上。这实际上是我见过的最快的答案。非常感谢! 是的!这是完美的。一段时间后我会接受它(因为我不能按照 SO 规则这么快地接受答案:P)

以上是关于计算特定名称的行数的主要内容,如果未能解决你的问题,请参考以下文章

计算其中的行数以找到特定值的行数[重复]

HIVE/Impala 查询:计算满足特定条件的行之间的行数

计算本周特定日期的行数 sqlite

计算具有特定文本的行数

在聚合查询中计算具有特定条件的行

如何计算小于 Hive 表中特定行的行数?