如何在oracle中为重复值创建标志

时间:2015-06-02 11:37:26

标签: sql oracle

我想知道如何为表中的重复行创建一个标志。例如:如果我得到重复的行,它将显示1,如果我没有得到任何重复的行,它将显示0

我尝试了以下测试表,我曾经用它来检查它是否可行

<body itemscope> <!-- you can/should give it an itemtype -->

  <meta itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" content="" itemref="my-rv my-rc">
  <meta itemprop="ratingValue" content="4.6" id="my-rv" />
  <meta itemprop="ratingCount" content="8864" id="my-rc" />

</body>

我想从结果得到的结果是:1表示重复的行 0表示非重复行

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将分析函数与case一起使用。但您想要的是count(*)而不是row_number()

select t.*,
       (case when count(*) over (partition by emp_name, emp_no, dept) > 1
             then 1 else 0
        end) as groupflag
from t_flag t;