Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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 如何找到使用最多和最少的钥匙?_Sql_Oracle - Fatal编程技术网

Sql 如何找到使用最多和最少的钥匙?

Sql 如何找到使用最多和最少的钥匙?,sql,oracle,Sql,Oracle,我的表格中有以下数据: INSERT INTO VIDEOS VALUES(20,'V1','KIDNAP','CRIME'); INSERT INTO VIDEOS VALUES(20,'V2','ABUSE','CRIME'); INSERT INTO VIDEOS VALUES(20,'V3','ROBBERY','CRIME'); INSERT INTO VIDEOS VALUES(20,'V4','MURDER','CRIME'); INSERT INTO VIDEOS VALUES(

我的表格中有以下数据:

INSERT INTO VIDEOS VALUES(20,'V1','KIDNAP','CRIME');
INSERT INTO VIDEOS VALUES(20,'V2','ABUSE','CRIME');
INSERT INTO VIDEOS VALUES(20,'V3','ROBBERY','CRIME');
INSERT INTO VIDEOS VALUES(20,'V4','MURDER','CRIME');
INSERT INTO VIDEOS VALUES(20,'V5','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(20,'V6','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(20,'V7','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(20,'V8','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(20,'V9','SOCIAL','SOCIAL');
INSERT INTO VIDEOS VALUES(19,'V1','KIDNAP','CRIME');
INSERT INTO VIDEOS VALUES(19,'V2','ABUSE','CRIME');
INSERT INTO VIDEOS VALUES(19,'V3','ROBBERY','CRIME');
INSERT INTO VIDEOS VALUES(19,'V4','MURDER','CRIME');
INSERT INTO VIDEOS VALUES(19,'V5','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(19,'V6','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(19,'V7','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(19,'V8','POLITICAL','POLITICAL');
INSERT INTO VIDEOS VALUES(29,'V1','KIDNAP','CRIME');
INSERT INTO VIDEOS VALUES(29,'V2','ABUSE','CRIME');
INSERT INTO VIDEOS VALUES(29,'V3','ROBBERY','CRIME');
从上面的19、20和29是关键值。我想找到与键一起具有最小值和最大值的键

此处,键29的值最少(3),键20的值最多(9)


如何识别使用最少和最多的键值?

如果您没有领带,您可以使用
保持稠密\u排名
,或者在这种情况下使用两个版本,使用和:

如果您确实有领带,您可以通过在
orderby
-比如
orderby count(*),id
中添加另一个子句来决定如何订购领带

但是,如果出现平局,这种方法将不允许返回两个结果。如果需要这样做,可以使用inine视图。添加一些数据,使最低计数保持一致:

INSERT INTO VIDEOS VALUES(30,'V1','KIDNAP','CRIME');
INSERT INTO VIDEOS VALUES(30,'V2','ABUSE','CRIME');
INSERT INTO VIDEOS VALUES(30,'V3','ROBBERY','CRIME');
最低要求:

select id
from (
  select id, dense_rank() over (order by count(*)) as rnk
  from videos
  group by id
)
where rnk = 1;

        ID
----------
        30
        29
最大值:

select id
from (
  select id, dense_rank() over (order by count(*) desc) as rnk
  from videos
  group by id
)
where rnk = 1;

        ID
----------
        20

如果有平局呢?@Cory,显示两个值
select id
from (
  select id, dense_rank() over (order by count(*) desc) as rnk
  from videos
  group by id
)
where rnk = 1;

        ID
----------
        20