【发布时间】:2018-07-18 22:05:30
【问题描述】:
我在 node.js 中遇到了 sqlite3 的问题
我有大约 5000 行和 3 列的表:itemId、provider、price
我正在尝试对 itemId 进行分组并获取 avg(price) where provider = "X"。
代码如下:
var sql = "SELECT itemId, avg(price) from dataset where provider = ? group by ?";
db.each(sql, ["clerk", "itemId"],
function (err, row) {
if (err) throw err;
console.log(row)
},
function (err, cntx) {
if (err) throw err;
console.log('Number of retrieved rows is ' + cntx);
});
};
问题是该语句仅返回 1 行,其中第一个 itemId 在 where 子句中,但平均值是整个 where 子句的平均值。应该返回 8 行。当我这样做时:
select distinct(itemId) from dataset where provider = ?
它返回 8 行。
我尝试在 itemId 上使用 distinct 以及将 itemId 设为 INTEGER 和 TEXT 字段。都没有用。
【问题讨论】:
标签: sql node.js sqlite group-by