node.js - mysql如何通过knex查询今天和七天内的汇总数据
怪我咯
怪我咯 2017-04-17 14:59:44
0
1
860

具体实现是要在product表中查询出今天、七天和三十天内的产品数量,具体的sql语句已经写好了

select sum(inputer as productNum) from `product` where to_days(`createdAt`)= to_days(now());

但是在knex.js里面我这样写根本不对

  return knex('product')
  .where({ inputer: user, deletedAt: null })     
  .andWhere('to_days(add_time)', '=', 'to_days(now())')
  .sum('inputer as productNum')
  .then(function (productRow) {
    return { product: productRow };
  })

用having也不对,knex文档里没有看到聚合函数的使用方法,求指教

  return knex('product')
  .where({ inputer: user, deletedAt: null })     
  .groupBy(id)
  .having('to_days(add_time)', '=', 'to_days(now())')
  .sum('inputer as productNum')
  .then(function (productRow) {
    return { product: productRow };
  })
怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(1)
PHPzhong

knex.js을 사용한 적이 없지만 SQL이 복잡한 것 같습니다(원본 SQL은 createdAt 필드에 대해 작업을 수행하므로 이 필드의 인덱스가 무효화될 수 있습니다).

으아악

오늘의 시작 시간인 7일 전과 30일 전(예: yyyy-MM-dd 00:00:00)을 프로그램을 통해 계산하여 SQL에 대입합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿