-1

私のテーブルは次のようなものです。

------------------------------------
id | value    |  date_value
------------------------------------
1  |    a     |  2013-01-01T00:00:00
2  |    a     |  2013-01-01T05:00:00
3  |    b     |  2013-01-01T03:00:00
4  |    a     |  2013-01-02T00:00:00
5  |    a     |  2013-01-03T00:00:00
6  |    c     |  2013-01-06T00:00:00
7  |    a     |  2013-01-10T05:00:00
8  |    a     |  2013-01-10T06:00:00
9  |    a     |  2013-01-10T07:00:00

((more than 2 times duplicate値を選択したい's count) /('s count except duplicate))

上記の場合、結果は1/3になります(値のみaが重複の2倍であるため)。

それを行うためにSQLを作成するにはどうすればよいですか?

4

1 に答える 1

1

それはどういうmore than 2 times duplicate value's count意味かによります。これが4回以上表示される値を意味する場合は、次のようにすべきです。

select value
from your_table
group by value
having count(*) >= 4

4つは希望の値に置き換えることができます。2つかもしれませんが、よくわかりません。

2番目の部分は次のようです。

select count(distinct value) from your_table;

したがって、最初の部分で重複を要求することを考慮すると、最終的なSQLは次のようになります。

select count(value) / (select count(distinct value) from your_table)
from(
    select value
    from your_table
    group by value
    having count(*) >= 2
    )
于 2013-03-26T14:30:37.293 に答える