Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 仅选择Oracle中计数的前10名_Sql_Oracle_Select_Greatest N Per Group - Fatal编程技术网

Sql 仅选择Oracle中计数的前10名

Sql 仅选择Oracle中计数的前10名,sql,oracle,select,greatest-n-per-group,Sql,Oracle,Select,Greatest N Per Group,我需要创建一个查询,在该查询中,我只选择oracle中某个计数的前十名,但我似乎无法正确获得它。我读过关于使用排名的文章,但到目前为止,我还没有弄明白 select col , count(col) from table_name group by col 您可以使用另一个查询包装此查询,并使用rownum伪列: SELECT col, cnt FROM (SELECT col , COUNT(col) AS cnt FROM table_name

我需要创建一个查询,在该查询中,我只选择oracle中某个计数的前十名,但我似乎无法正确获得它。我读过关于使用排名的文章,但到目前为止,我还没有弄明白

select col , count(col) from table_name group by col

您可以使用另一个查询包装此查询,并使用rownum伪列:

SELECT col, cnt
FROM   (SELECT   col , COUNT(col) AS cnt
        FROM     table_name 
        WHERE    col IS NOT NULL
        GROUP BY col
        ORDER BY 2 DESC)
WHERE  rownum <= 10

这似乎非常接近,但我得到了一个错误。不是单一的组功能。我原以为在语句末尾添加另一个groupby会起作用,但是col count只会返回为每个col的一个。它确实有效。cnt中输入的第一个select语句错误。现在我看到返回的最大值是该列中所有null/empty值。我需要排除那个可能非常简单的选项。@WeVie添加了一个where子句来排除空cols-应该可以做到这一点。