我试过这个查询:
SELECT X,Y,Z,COUNT(*)
FROM TABLE1
GROUP BY X,Y,Z
我的结果是:
但我需要以下结果:
最佳答案
这应该可以解决问题:
SELECT X,Y,Z,ROW_NUMBER() OVER (PARTITION BY X,Y,Z ORDER BY X,Y,Z)
FROM TABLE1
ROW_NUMBER() 将为 X、Y、Z 组中的每个值打勾,并在下一组重置。 ORDER BY 子句用于定义它应该按什么顺序打勾,并且可以更改为您希望的任何方式。这是 Oracle 提供的分析功能之一,非常有用。
关于sql - 如何在我的查询中添加组内的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28613307/