node.js - mysql如何通過knex查詢今天和七天內的匯總數據
問題描述
具體實現是要在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:沒用過knex.js,但SQL好像復雜化了(原SQL會對createdAt字段進行運算,有可能會讓該字段的索引失效)。
SELECT sum(inputer) AS product_num FROM `product`WHERE createdAt >= ?
通過程序計算出今天、七天前和三十天前的起始時間(即yyyy-MM-dd 00:00:00),然后代入SQL即可。
相關文章:
1. Python如何播放還存在StringIO中的MP3?2. mysql - jdbc的問題3. python - 編碼問題求助4. Python爬蟲如何爬取span和span中間的內容并分別存入字典里?5. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處6. python - 小白django提交數據后,沒有存儲到數據庫(查閱資料并沒有發現問題)7. 圖片鏈接的地址怎么獲得的8. python - oslo_config9. python - 我在使用pip install -r requirements.txt下載時,為什么部分能下載,部分不能下載10. mysql - 如何減少使用或者不用LEFT JOIN查詢?
