我的表值如下:
ID column1
101 a
101 b
101 c
102 aa
102 bb
102 cc
如何编写SQL查询以显示结果如下所示
function search() {
var tmp = new Date().toISOString();
//console.log('new Date() ' + tmp);
db.createIndex({
index: {
fields: ['title']
}
}).then(function (result) {
console.log('createIndex ' + result);
findIt(); // Run Find
}).catch(function (err) {
console.log('createIndex ' + err);
});
}
function findIt()
{
db.find({
selector: { title: { $eq: 'ABC2' } },
sort: ['title']
//, use_index: 'indexFoo'
}).then(function (result) {
//console.log('find - result ' + result);
console.log(JSON.stringify(result));
// console.log('JSON' + JSON.stringify(result, undefined, 2));
console.log('Title: ' + result.docs[0].title);
}).catch(function (err) {
console.log('find - err ' + err);
});
}
答案 0 :(得分:0)
如果按column1分组,则会消除任何重复项。但是要显示ID,你需要某种聚合函数,如MIN或MAX来显示,否则你会收到错误。
SELECT MIN(ID) as ID, column1
GROUP BY column1
ORDER BY column1
应该导致
ID column1
101 a
101 b
101 c
102 aa
102 bb
102 cc
答案 1 :(得分:0)
有多种方法可以做到这一点,但由于问题有点含糊不清,很难确定这方面的确切要求,但这里有几个选项:
按最小的ID排序,然后按列1按字母顺序排列
SELECT MIN(ID) as ID, column1
GROUP BY column1
ORDER BY MIN (ID), column1
按列长1排序,然后按字母顺序排列<1>
SELECT MIN(ID) as ID, column1
GROUP BY column1
ORDER BY LEN (column1), column1