- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有下表 data_users
id | signed_up_at | product_id
-------+---------------------------------
20030 | 2017-09-15 12:51:45 | 2
20122 | 2017-09-15 12:51:45 | 2
21461 | 2017-09-15 12:51:45 | 2
20150 | 2017-09-13 10:10:10 | 2
19858 | 2017-09-10 23:00:54 | 2
20126 | 2017-09-10 23:00:28 | 2
20888 | 2017-09-10 23:00:28 | 2
20143 | 2017-09-10 23:00:28 | 2
21369 | 2017-09-10 23:00:02 | 2
我正在使用查询从该表中查找每天的累计总和:
SELECT DATE_TRUNC('day', signed_up_at::timestamptz) AS date,
SUM(COUNT(*)) OVER (ORDER BY DATE_TRUNC('day', signed_up_at::timestamptz)) AS sum
FROM "data_users"
WHERE product_id = 2
GROUP BY date ORDER BY date
它返回这样的东西
date | sum
------------------------+------
2017-09-15 00:00:00+02 | 1693
2017-09-13 00:00:00+02 | 1690
2017-09-10 00:00:00+02 | 1689
如您所见,我在没有使用该 signed_up_at
的用户的日子里有日期间隔。
而不是这个,我想得到以下结果
date | sum
------------------------+------
2017-09-15 00:00:00+02 | 1693
2017-09-14 00:00:00+02 | 1690
2017-09-13 00:00:00+02 | 1690
2017-09-12 00:00:00+02 | 1689
2017-09-11 00:00:00+02 | 1689
2017-09-10 00:00:00+02 | 1689
所以我想获得每一天的总和,而不仅仅是那些拥有该 signed_up_at
用户的日子。
我正在尝试通过 GENERATE_SERIES
实现这一点,但我没有得到想要的结果:
SELECT DATE_TRUNC('day', signed_up_at::timestamptz) AS date,
SUM(COUNT(*)) OVER (ORDER BY DATE_TRUNC('day', signed_up_at::timestamptz)) AS sum
FROM (SELECT GENERATE_SERIES(MIN(signed_up_at)::DATE, MAX(signed_up_at)::DATE, '1 DAY'::INTERVAL) AS date
FROM "data_users") AS d
LEFT OUTER JOIN "data_users" u ON u.signed_up_at::DATE = d.date::DATE
WHERE product_id = 2
GROUP BY signed_up_at ORDER BY date
我应该如何修改我的查询以支持它? Turo 的回答帮助我指明了正确的方向,但我现在对 WHERE
子句有疑问。
最佳答案
我手头没有postgres,通过我看到计数和分组的问题,请尝试
SELECT DATE_TRUNC('day', date::timestamptz) AS date,
SUM(COUNT(signed_up_at)) OVER (ORDER BY DATE_TRUNC('day',
date::timestamptz)) AS sum
FROM (SELECT GENERATE_SERIES(MIN(signed_up_at)::DATE, MAX(signed_up_at)::DATE,
'1 DAY'::INTERVAL) AS date
FROM "data_users") AS d
LEFT OUTER JOIN "data_users" u ON u.signed_up_at::DATE = d.date::DATE
GROUP BY date ORDER BY date
关于sql - 填补 PostgreSQL 查询结果中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47959850/
这个问题困扰了我一段时间,因为我一直在寻找一种有效的方法。基本上,我有一个数据框,每行都有一个来自实验的数据样本。我想这应该更多地被视为来自实验的日志文件,而不是用于分析的数据的最终版本。 我遇到的问
我有一个带有 IDENTITY 列的表 [Id] int IDENTITY(1, 1) NOT NULL 在添加/删除了一些行之后,我以 Id 值的差距结束: Id Name ---------
我有一个发票表,我在其中存储给定数据范围的发票(即 2012-01-01 到 2012-01-31 之间日期的发票 1)。现在有几天可能没有关联的发票,所以你会有 > ID | START_DATE
我正在查询 DATE 字段: SELECT DATE , FIELD2 , FIELD3 into Table_new FROM Table_old WHERE (crite
我有下表 data_users id | signed_up_at | product_id -------+---------------------------------
抱歉这个模糊的主题,但我想不出该放什么。 这是我的问题,我正在对一个表进行查询,该表返回与一天相关的项目计数。我想确保如果我对数据库进行查询,我总是会得到一定数量的行。例如,假设我有下表,其中包含人们
这个问题在这里已经有了答案: Why does CSS Grid layout add extra gaps between cells? (4 个答案) CSS-only masonry layo
给定数据框 df = pd.DataFrame(data=[[1,1,3],[1,2,6],[1,4,3],[2,2,6]],columns=['ID','Day','Value']) df Out[
我有以日期时间为索引的 Pandas DataFrame(从 .csv 加载).. 每天有/必须有一个条目。问题是我有差距,即有些日子我根本没有数据。在间隙中插入行(天)的最简单方法是什么?还有一种方
我只想用最简单的术语对 3D 数据集进行插值。线性插值,最近邻,这就足够了(这是开始一些算法,所以不需要准确估计)。 在新的 scipy 版本中,像 griddata 这样的东西会很有用,但目前我只有
我有一个类似于下面示例的多维数组,我想使用 Ruby 的 zip 方法将其组合在一起。当每个内部数组具有相同数量的元素时,我可以正常工作,但当它们的长度不同时,我会遇到问题。 在下面的示例中,第二组在
我有一个由日期和一些值组成的数组或对象: var flatData = [ { "date": "2012-05-26", "product": "apple" }, { "date
我有一个带有列 Age 的表格, Period和 Year .栏目Age总是从 0 开始并且没有固定的最大值(我在这个例子中使用了 'Age' 0 到 30,但范围也可以是 0 到 100 等),值
在 SQL Server 2014 中,我有一个如下所示的 Periods 表: | PeriodId | PeriodStart | PeriodEnd | -------------------
在 SQL Server 2014 中,我有一个如下所示的 Periods 表: | PeriodId | PeriodStart | PeriodEnd | -------------------
我正在尝试在 NVD3.js 中制作水平分组堆叠条形图。一切都很好,直到我的 JSON 数据出现“差距”,如下所示: [{ "key": "Education & news",
我想修改一个 pandas MultiIndex DataFrame,使每个索引组都包含指定范围之间的日期。我希望每个组用值 0(或 NaN)填写缺失的日期 2013-06-11 到 2013-12-
我是一名优秀的程序员,十分优秀!