复杂的mysql选择查询

时间:2013-03-26 14:01:26

标签: mysql sql django

我的桌子是这样的:

------------------------------------
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?

1 个答案:

答案 0 :(得分: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
    )