gpt4 book ai didi

sqlite - SQLite-选择列的不同组合的等级

转载 作者:行者123 更新时间:2023-12-03 17:57:27 24 4
gpt4 key购买 nike

我有一个SQLite数据库,如下所示:

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"


我需要选择以下内容:


所有栏
num1num2的不同组合的数量
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


我尝试使用许多不同的子查询进行查找,但是没有得到任何有用的结果。



编辑:我设法使用以下查询获取组合数(因此列 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,
...

关于sqlite - SQLite-选择列的不同组合的等级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38400813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com