-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

四个可以替换为所需的值。可能是两个,我不确定。

第二部分似乎是:

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 回答