首页 > 解决方案 > 如何在sql中的ARRAY中获取最频繁的值?

问题描述

我是 SQL 的新手。

我已经建立了一个数组,我一直在其中存储我一直在循环中收集的值并将它们除以其他值。

该数组具有正确的值。

现在我需要得到这个数组中重复次数最多的值。

这可以用 SQL 实现吗?我的环境是 Oracle 11。

这是数组:

type array_type is varray(100) of NUMBER(10);
loop_results array_type := array_type();

价值:

 1: 906450
 2: 906450
 3: 306449
 4: 906446
 5: 306450
 6: 906447
 7: 306449
 8: 306448
 9: 306448
10: 306450

谢谢你的时间。

标签: sqloracleoracle11g

解决方案


首先,数组是 pl/sql 的一部分。同样尝试以下。下面使用临时表会有些容易。

  Create table sample(value1 
   number(10));
  Declare
  type array_type is varray(100) of 
  NUMBER(10);
  loop_results array_type := array_type();
   Max varchar2(20);

    begin
     for i in 1..loop_results.length
     loop
     Insert into sample values
     (loop_results(i)) ;

     End loop
     Select value1 into max from(Select 
      Value1, 
      count(*) 
       from sample order by count(*) desc
      Group by value1) where rownum=1;

   dbms_output.put_line(max) ;

     End

推荐阅读