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

时间:2015-02-19 17:47:26

标签: sql oracle

我尝试过这个问题:

SELECT X,Y,Z,COUNT(*) 
FROM TABLE1 
GROUP BY X,Y,Z

我的结果是:

enter image description here

但我需要以下结果:

enter image description here

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

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提供的分析功能之一,非常有用。

答案 1 :(得分:0)

我想你也希望按ORDER_NO

进行分组
SELECT X,Y,Z,COUNT(*) 
FROM TABLE1 
GROUP BY X,Y,Z,ORDER_NO