最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Sails.jswaterline: groupBy + count - Stack Overflow

programmeradmin0浏览0评论

Using sails.js (0.10.5):

I can't figure out how to achieve a groupBy/count using waterline/sails. What I would like to have is something like:

SELECT customer_id, COUNT('') FROM customer_data GROUP BY customer_id;
or
SELECT customer_id, SUM(1) FROM customer_data GROUP BY customer_id;

I wasn't able to achieve this using count nor sum (using a constant):

Customer.find({ groupBy:['customer_id'], count: true })
or
Customer.find({ groupBy:['customer_id'], sum: [1] })

Both will end in an error, the first "missing calculation" and the second "SQL syntax error". I can make a grouping using sum with an existing column (sum: ['id']) but that does not get me the count.

Am I using the API wrong?

Using sails.js (0.10.5):

I can't figure out how to achieve a groupBy/count using waterline/sails. What I would like to have is something like:

SELECT customer_id, COUNT('') FROM customer_data GROUP BY customer_id;
or
SELECT customer_id, SUM(1) FROM customer_data GROUP BY customer_id;

I wasn't able to achieve this using count nor sum (using a constant):

Customer.find({ groupBy:['customer_id'], count: true })
or
Customer.find({ groupBy:['customer_id'], sum: [1] })

Both will end in an error, the first "missing calculation" and the second "SQL syntax error". I can make a grouping using sum with an existing column (sum: ['id']) but that does not get me the count.

Am I using the API wrong?

Share Improve this question edited Nov 2, 2015 at 18:38 Joe Hill 3333 silver badges12 bronze badges asked Jan 9, 2015 at 5:27 tokoshtokosh 1,8365 gold badges21 silver badges40 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

please use Customer.query('SELECT customer_id, SUM(1) FROM customer_data GROUP BY customer_id', function(err,results){})

if you don't want use sql, you can like this to use Customer.find({groupBy:'customer_id'}).exec

ref: waterline-sequel select builder function

.query() is deprecated as of Sails v1.0, instead use .getDatastore().sendNativeQuery() (ref: https://sailsjs./documentation/reference/waterline-orm/models/query). There's still no way to do this with Waterline.

发布评论

评论列表(0)

  1. 暂无评论