【问题标题】:Complex mysql selection query复杂的mysql选择查询
【发布时间】:2013-03-16 08:41:33
【问题描述】:

我的桌子是这样的:

------------------------------------
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 duplicatevalue's count) /(value's count except duplicate))

在上述情况下,结果是 1/3(因为只有值 a 是重复值的 2 倍)。

我如何为此创建 sql?

【问题讨论】:

  • 您可能想要查看 django 注释(计数上的聚合是您想要的)

标签: mysql sql django


【解决方案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
    )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2015-11-04
    • 2018-02-19
    相关资源
    最近更新 更多