用于为结果添加索引的sqlite查询
我有一个包含两个参数的表:组id和名称用于为结果添加索引的sqlite查询,sqlite,Sqlite,我有一个包含两个参数的表:组id和名称 CREATE TABLE inf_table (group_id INTEGER NOT NULL, name TEXT NOT NULL); INSERT INTO inf_table(group_id, name) values (1,'AA'); INSERT INTO inf_table(group_id, name) values (1,'BB'); INSERT INTO inf_table(group_id, name) values
CREATE TABLE inf_table (group_id INTEGER NOT NULL, name TEXT NOT NULL);
INSERT INTO inf_table(group_id, name) values (1,'AA');
INSERT INTO inf_table(group_id, name) values (1,'BB');
INSERT INTO inf_table(group_id, name) values (1,'AB');
INSERT INTO inf_table(group_id, name) values (2,'AA');
INSERT INTO inf_table(group_id, name) values (2,'BA');
INSERT INTO inf_table(group_id, name) values (2,'AB');
INSERT INTO inf_table(group_id, name) values (2,'BB');
我运行了一个查询,按组id然后按名称对结果排序。按组id、名称从inf\u表顺序选择*;
得到:
但是,我想为每一行添加一个索引,以显示每个组中名称的索引:
1|1|AA
2|1|AB
3|1|BB
1|2|AA
2|2|AA
3|2|BA
4|2|BB
我怎么能
谢谢您必须对同一组中的行进行计数,并且在当前名称之前有一个名称:
SELECT (SELECT COUNT(*)
FROM inf_table AS inf2
WHERE inf2.group_id = inf_table.group_id
AND inf2.name <= inf_table.name ) AS "index",
group_id,
name
FROM inf_table
ORDER BY group_id,
name
在程序中读取行时,对行进行计数可能更有效
SELECT (SELECT COUNT(*)
FROM inf_table AS inf2
WHERE inf2.group_id = inf_table.group_id
AND inf2.name <= inf_table.name ) AS "index",
group_id,
name
FROM inf_table
ORDER BY group_id,
name