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

标签 sql oracle

我试过这个查询:

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

我的结果是:

enter image description here

但我需要以下结果:

enter image description here

最佳答案

这应该可以解决问题:

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/

相关文章:

mysql - SQL——是否有任何行的列值大于 6?

sql - Postgresql IN 语句

oracle - 在 MS Access 中以编程方式创建 ODBC 连接和链接表

SQL OVER (Partition by) - 处理空值

perl - %ENV不起作用,我无法使用共享库

MySQL 在表中的多个列的多个条件上使用 Select

java - X 天后从数据库中删除项目

mysql - SQL 非负数和 TinyInt 问题

java - 带有公式的 Hibernate @OneToOne - 列不能外部连接到子查询

java - 内部错误 : Unknown or unimplemented accessor type: 9