Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:如何获得足够的活动天数,使我至少有50个活动_Sql_Postgresql - Fatal编程技术网

SQL:如何获得足够的活动天数,使我至少有50个活动

SQL:如何获得足够的活动天数,使我至少有50个活动,sql,postgresql,Sql,Postgresql,我有一张活动表。每个事件都有一个日期。我的API要求我在某个日期之前/之后返回至少X个事件,但我必须返回每个日期的所有事件。 如果我在代码中这样做的话,我会按照日期对事件进行分组,并按升序/降序排序,然后花足够的时间,至少有50个事件 这就是我到目前为止所做的: 。。。。 从日期在 选择不同的日期 从事件中 其中DATE=X,例如50,然后返回实际事件。 是这样做的吗?这样的查询应该如何正确编写?此代码应该可以工作: 感谢您花时间回复。就我所见,您的查询与我的查询基本相同,只是删除了distin

我有一张活动表。每个事件都有一个日期。我的API要求我在某个日期之前/之后返回至少X个事件,但我必须返回每个日期的所有事件。 如果我在代码中这样做的话,我会按照日期对事件进行分组,并按升序/降序排序,然后花足够的时间,至少有50个事件

这就是我到目前为止所做的:

。。。。 从日期在 选择不同的日期 从事件中 其中DATE=X,例如50,然后返回实际事件。 是这样做的吗?这样的查询应该如何正确编写?

此代码应该可以工作:


感谢您花时间回复。就我所见,您的查询与我的查询基本相同,只是删除了distinct关键字,并使子查询将事件引用为e2而不是e。然而,我只发布了我让django为我生成的查询的主要部分——即查询本身工作,但没有返回预期结果。您所做的更改如何解决此问题?顺便说一句,我的约会中没有时间成分。@Relman。正如答案所指出的,如果日期包含时间成分,那么您的查询将不起作用。第二个版本解决了这个问题。我用我的代码解决了这个问题:你确认的上述算法是正确的。问题是我的django代码进一步过滤结果,并减少返回结果的列表。
select e.*
from events e
where date in (select e2.date
               from events e2
               where e2.date <= '2018-08-12'
               order by e2.date desc
               limit 50
              );
select e.*
from events e
where date::date in (select e2.date::date
                     from events e2
                     where e2.date <= '2018-08-12'
                     order by e2.date desc
                     limit 50
                    );