如何在我的查询中添加组内的行号

Gur*_*can 5 sql oracle

我试过这个查询:

SELECT X,Y,Z,COUNT(*) 
FROM TABLE1 
GROUP BY X,Y,Z
Run Code Online (Sandbox Code Playgroud)

我的结果是:

在此处输入图片说明

但我需要以下结果:

在此处输入图片说明

Ent*_*yan 8

这应该可以解决问题:

SELECT X,Y,Z,ROW_NUMBER() OVER (PARTITION BY X,Y,Z ORDER BY X,Y,Z)
FROM TABLE1 
Run Code Online (Sandbox Code Playgroud)

ROW_NUMBER() 将为组 X、Y、Z 中的每个值打勾,并在下一组重置。ORDER BY 子句用于定义它应该按什么顺序打勾,并且可以更改为您希望的任何方式。这是 Oracle 提供的分析功能之一,非常有用。