【发布时间】:2018-09-25 05:15:41
【问题描述】:
我正在尝试创建一个交叉表,其中行 = 月,列 = 天(即 1、2、3、4...31)。
Month | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ...
------+------+------+-----+-----+-----+-----+-----+-----+-----+-----+------+------
9 | 1000 | 1500 | | | | | 500 | | | | 1500 | 2000
8 | 1000 | | | | | | | | | | |
我的查询如下:
SELECT * FROM crosstab(
$$
SELECT
extract(month from created_at) AS themonth,
extract(day from created_at) AS theday,
COUNT(*)
FROM public.users
WHERE created_at >= Now() - Interval '90 Days' AND created_at < Now() - Interval '1 days'
GROUP BY created_at
ORDER BY 1,2
$$
) AS final_result (
themonth int,
theday int
)
以下收到错误: rowid 数据类型不匹配返回 rowid 数据类型
这是我第一次使用交叉表。
我觉得这是一个简单的解决方法,希望能提供任何帮助。谢谢!
【问题讨论】:
-
您选择了 3 列,而 final_result 只有两列?当然,只是注意到你的别名。
标签: postgresql crosstab