我的桌子是这样的:
------------------------------------
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?
答案 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
)