【问题标题】:Oracle : How to write a SQL query to show serial numbers for each set of same values?Oracle:如何编写 SQL 查询来显示每组相同值的序列号?
【发布时间】:2018-08-10 00:57:15
【问题描述】:

例如,如果我有一张像 EmpID , Empname , 国家/地区

输出应该是这样的

EmpId   EmpName Country Serial No.
1       ABC     India         1
2       BCD     India         2
3       CMO     India         3
4       DIS     China         1
5       FGH     China         2
6       FHI     Singapore     1
7       XYZ     Singapore     2
8       KLM     Singapore     3
9       NOP     Singapore     4
10      QRS     Singapore     5

这里按值分组是国家/地区。

【问题讨论】:

标签: sql oracle


【解决方案1】:

自己找到了答案。下面的查询就可以了。

SELECT EmpID , EmpName, Country , ROW_NUMBER() OVER(PARTITION BY
Country order by EmpName ) AS GroupSequence1 from Employee;

欢迎进一步优化

【讨论】:

  • 按 EmpId 排序优于 EmpName,因为 EmpName 只是虚拟数据。
猜你喜欢
  • 2018-01-16
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
相关资源
最近更新 更多