如何合并来自两个不同日期范围的两个不同计数SQL

时间:2019-01-04 23:32:24

标签: sql postgresql redash

我会尽量保持简单。

我有两个运行良好的查询,它们都计算在特定日期范围内当天有多少用户注册。

查询1-获取从今天开始一年中每天注册的用户的列表。这是结果的picture

SELECT users.created::date,
       count(users.id)
FROM users
WHERE users.created::date < now() - interval '12 month'
  AND users.created::date > now() - interval '13 month'
  AND users.thirdpartyid = 100
GROUP BY users.created::date
ORDER BY users.created::date

查询2-获取一个月前从今天开始每天注册的用户的列表。这是此结果的picture

SELECT users.created::date,
       count(users.id)
FROM users
WHERE users.created::date > now() - interval '1 month'
  AND users.thirdpartyid = 100
GROUP BY users.created::date
ORDER BY users.created::date

我要坚持的是如何结合这两个查询,以便可以在redash网站上创建堆栈条形图。显然,它们都是不同的年份,但是我希望我的X轴是月中的某天,而Y是用户数。谢谢。

编辑:

这是一个示例输出,我认为它对我来说非常合适。

| Day of the month  | Users signed up December 2017 | Users signed up December 2018
|------------------ | ----------------------------- | -----------------------------|
|         01                       45                                56
| ----------------- | ----------------------------  | -----------------------------|
|         02                       47                                32
| ----------------- | ----------------------------  | -----------------------------|

etc...

1 个答案:

答案 0 :(得分:0)

您可以尝试使用过滤器。我随心所欲地选择一个月中的某天,因为您似乎想要它而不是整个日期。

var list = [
{
    "ID": 0,
    "Name": "Mark",
    "Address": "2323 st",
    "Phone": "511 232 2000",
    "Score": 345
},
{
    "ID": 1,
    "Name": "Catrina",
    "Address": "2323 st",
    "Phone": "511 232 2100",
    "Score": 3452
}]

function remap(d) {
    const {ID, Name, Address, Phone, Score} = d; 
    return {Score, Name, Address, ID, Phone}
}
console.log(list.map(remap))