【问题标题】:Need to convert psql query into typeorm需要将 psql 查询转换为 typeorm
【发布时间】:2021-08-11 23:52:36
【问题描述】:

我需要每天/每周/每月获取数据。所以我使用 date_trunc() 函数来获取这种类型的记录。我进行了 psql 查询,但我需要将其转换为 typeorm 代码,因为我是 typeorm 堆栈的新手。以下是查询

select date_trunc('day', e."createdAt") as production_to_month, count(id) as count from events e 
where e."createdAt" between '2021-05-10' and '2021-05-17' and e."type" = 'LOGIN'
group by date_trunc('day', e."createdAt") 
order by date_trunc('day', e."createdAt") asc

需要转换一下

【问题讨论】:

    标签: node.js database typescript postgresql typeorm


    【解决方案1】:

    您需要使用查询生成器来获得所需的结果。

    查询将是 -

      return await getRepository(Events)
      .createQueryBuilder("e")
      .select("date_trunc('day',`e`.`createdAt`)","production_to_month")
      .addSelect("count(`id`)","count")
      .where("`e`.`createdAt` between '2021-05-10' and '2021-05-17'")
      .andWhere("`e`.`type` = 'LOGIN'")
      .groupBy("date_trunc('day',`e`.`createdAt`)").
      .orderBy("date_trunc('day',`e`.`createdAt`)","ASC")
      .printSql()
      .getRawMany()
    

    【讨论】:

    • 嗨 Soham 使用此查询我得到了该日期存在的数据,例如 -> 如果我在 2021 年 5 月 13 日没有数据,那么使用上述查询我没有行那个日期,但我需要那个计数为 0 的行你能帮我吗
    • @Rochit 你准备好一个 SQL 查询来做同样的事情了吗?
    • 我准备了sql查询,请您转换成typeorm查询SELECT sequential_dates.date, events.count FROM (select date_trunc('DAY', months) AS date from generate_series('2021-05-03' :: DATE, '2021-05-31' :: DATE, '1 DAY') as months ) sequential_dates LEFT JOIN( select date_trunc('DAY', events."createdAt") AS date, count(events.id) as count from events group by date ) events on sequential_dates.date = events.date
    猜你喜欢
    • 1970-01-01
    • 2021-12-13
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多