选择具有至少两次出现的列值并且在另一列中具有不同值的行,最后按更新时间排序

时间:2019-06-07 15:34:57

标签: oracle

我需要选择一列具有完全相同的值且具有三个计数的值,而另一列中具有不同的值,最后按updated_time排序。

对于下面的示例,我只需要从column1中获取值15

column1 column2 updated_time
12        21    2019-01-05 01:36:50.995476
12        21    2018-04-05 01:36:50.995476
12        21    2019-02-05 01:36:50.995476
11        25    2019-03-05 01:36:50.995476
11        25    2019-02-05 01:36:50.995476
11        25    2019-04-04 01:36:50.995476
11        25    2019-05-05 01:36:50.995476
15        27    2019-01-05 01:36:50.995476
15        26    2019-01-05 01:36:50.995476
15        29    2019-02-05 01:36:50.995476
16        29    2019-04-03 01:36:50.995476
17        31    2019-04-03 01:36:50.995476

1 个答案:

答案 0 :(得分:0)

要获取column1的值,您必须group by column1

  

具有三个计数的相同值

表示count(*) = 3

  

另一列中的值不同

表示count(distinct column2) = 3

select * from tablename 
where column1 in (
  select column1
  from tablename 
  group by column1
  having
    count(*) = 3
    and 
    count(distinct column2) = 3
)
order by updated_time