SQLite-选择列的不同组合的列组
我有一个SQLite db,如下所示:SQLite-选择列的不同组合的列组,sqlite,Sqlite,我有一个SQLite db,如下所示: id | num1 | num2 | value ---|------|------|------ 1 | 2 | 1 | "foo" 2 | 1 | 1 | "foo" 3 | 2 | 4 | "foo" 4 | 2 | 3 | "foo" 5 | 1 | 1 | "foo" 6 | 1 | 1 | "foo" 7 | 1 | 3 | "foo" 8 |
id | num1 | num2 | value
---|------|------|------
1 | 2 | 1 | "foo"
2 | 1 | 1 | "foo"
3 | 2 | 4 | "foo"
4 | 2 | 3 | "foo"
5 | 1 | 1 | "foo"
6 | 1 | 1 | "foo"
7 | 1 | 3 | "foo"
8 | 1 | 2 | "foo"
我需要选择以下选项:
所有列
num1和num2的不同组合数
num1/num2组合的秩由num1和num2排序
生成的表应该如下所示:
id | num1 | num2 | value | num | rank
---|------|------|-------|-----|-----
1 | 2 | 1 | "foo" | 6 | 4
2 | 1 | 1 | "foo" | 6 | 1
3 | 2 | 4 | "foo" | 6 | 6
4 | 2 | 3 | "foo" | 6 | 5
5 | 1 | 1 | "foo" | 6 | 1
6 | 1 | 1 | "foo" | 6 | 1
7 | 1 | 3 | "foo" | 6 | 3
8 | 1 | 2 | "foo" | 6 | 2
我尝试了很多不同的子查询,但没有得到任何有用的结果
编辑:我通过以下查询获得了组合数so列num:
SELECT
*,
(
SELECT count (*)
FROM ( SELECT DISTINCT num1, num2
FROM table)
)
AS num
FROM table;
排名可以通过计算等于或小于当前行的不同行来计算。 如果num1较小,或者如果num1相等,num2较小,则行较小
...,
(SELECT COUNT(*)
FROM (SELECT DISTINCT num1, num2
FROM MyTable) AS T2
WHERE T2.num1 < MyTable.num1
OR (T2.num1 = MyTable.num1 AND
T2.num2 <= MyTable.num2)
) AS num,
...