【问题标题】:Get the maximum repeated row per day in oracle sql在oracle sql中获取每天最大重复行
【发布时间】:2021-02-03 10:38:08
【问题描述】:

我正在尝试每天获得最大重复行数。我提供了一个样本数据和基于它的预期结果

我的桌子看起来像

SELECT TYPE, DAY, COUNT(1) FROM table1 
GROUP BY TYPE, DAY
ORDER BY DAY



TYPE    DAY  COUNT(1)
A       1    4 
B       1    2
A       2    5
B       2    7

预期输出

TYPE    DAY  COUNT(1)
A       1    4 
B       2    7

我正在尝试根据计数每天获取最大重复行数。 在此先感谢,非常感谢任何帮助

https://dbfiddle.uk/?rdbms=oracle_18&fiddle=d9001b680ac9fe57a6394a682800f077

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    一种方法使用row_number()

    SELECT t.*
    FROM (SELECT TYPE, DAY, COUNT(*),
                 ROW_NUMBER() OVER (PARTITION BY DAY ORDER BY COUNT(*) DESC) as seqnum
          FROM table1 
          GROUP BY TYPE, DAY
         ) t
    WHERE seqnum = 1
    ORDER BY DAY;
    

    如果您只想要类型,则称为MODE。你可以使用STATS_MODE()

    select day, stats_mode(type)
    from table1
    group by day;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 2020-03-28
      • 2019-02-08
      • 2018-02-09
      • 2020-03-20
      • 2020-04-16
      • 2021-11-05
      相关资源
      最近更新 更多