PostgreSQL数据选择

是否可以编写PostgreSQL代码来查看样本中的样本数据,从而仅选择在整个第一季度(01/01/2018至03/31/2018)内都处于活动状态的人员,如所需输出所示?请注意,不应选择人H,因为他们缺少1月。

样本数据

    Person  Start Date  End Date
    A       1/1/2018    1/31/2018
    A       2/1/2018    2/28/2018
    A       3/1/2018    3/31/2018
    B       1/1/2018    2/28/2018
    C       1/1/2018    2/28/2018
    C       3/1/2018    3/31/2018
    D       2/1/2018    3/31/2018
    E       2/1/2018    2/28/2018
    F       1/1/2018    3/31/2018
    G       1/1/2018    4/30/2018
    H       2/1/2018    4/30/2018

所需的输出

    Person
    A
    C
    F
    G
gonglu 回答:PostgreSQL数据选择

假设您的列是正确的DATE列,并且没有重叠,则可以执行以下操作:

select person
from the_table
group by person
having sum(end_date - start_date + 1) >= date '2018-03-31' - date '2018-01-01' + 1
order by person;

从另一个date中减去一个List<Sale> s = GetSalesFromDatabaseMethod(); List<SaleDTO> sa = s.Select(item => (Sale) item).ToList(); ,得出两个日期之间的天数。然后将所有差异的总和与该季度的开始日期和结束日期之间的差异进行比较。

在线示例:https://rextester.com/OIN10602

本文链接:https://www.f2er.com/3136067.html

大家都在问