如何从 SQLite 中的 table 中获取最小的唯一整数
How to get the smallest unique integer from a table in SQLite
我有一个 table,它有两列,名称和编号。我想从提供的 table 中获取 最小的 唯一 号码。例如
name
number
john
1
abbey
3
afton
2
mike
1
lucas
5
jack
2
jake
4
tony
3
例如,这里的最小值是 1 但最小的 unique 值是 4
我如何在 SQLite 中进行查询才能做到这一点?
我确实看到了 但这不是我想要的
编辑:这是我试过的代码
Select a.name, a.number
From Result a
Having count(a.smallest) = 1
Group By a.smallest;
它返回了“错误:XX 行附近:“组”附近:语法错误”
我也试过了
Select a.name, a.number
From Result a
Where count(a.smallest) = 1
Group By a.smallest;
但它返回“错误:靠近 XX 行:滥用聚合:count()”
您可以尝试按数字汇总您的 table,限制数字只出现一次,然后保留最小的数字:
SELECT number
FROM yourTable
GROUP BY number
HAVING COUNT(*) = 1
ORDER BY number
LIMIT 1;
可以按号码分组,在HAVING子句中设置号码唯一的条件
然后用MIN()
window函数取最小的数:
SELECT DISTINCT MIN(number) OVER () AS min_number
FROM tablename
GROUP BY number
HAVING COUNT(*) = 1;
参见demo。
使用ROW_NUMBER
:
SELECT *
FROM (SELECT a.*, COUNT(*) OVER(PARTITION BY number) AS cnt
FROM Result a) sub
WHERE cnt = 1
ORDER BY number
LIMIT 1;
输出:
name number cnt
jake 4 1
我有一个 table,它有两列,名称和编号。我想从提供的 table 中获取 最小的 唯一 号码。例如
name | number |
---|---|
john | 1 |
abbey | 3 |
afton | 2 |
mike | 1 |
lucas | 5 |
jack | 2 |
jake | 4 |
tony | 3 |
例如,这里的最小值是 1 但最小的 unique 值是 4
我如何在 SQLite 中进行查询才能做到这一点?
我确实看到了
编辑:这是我试过的代码
Select a.name, a.number
From Result a
Having count(a.smallest) = 1
Group By a.smallest;
它返回了“错误:XX 行附近:“组”附近:语法错误” 我也试过了
Select a.name, a.number
From Result a
Where count(a.smallest) = 1
Group By a.smallest;
但它返回“错误:靠近 XX 行:滥用聚合:count()”
您可以尝试按数字汇总您的 table,限制数字只出现一次,然后保留最小的数字:
SELECT number
FROM yourTable
GROUP BY number
HAVING COUNT(*) = 1
ORDER BY number
LIMIT 1;
可以按号码分组,在HAVING子句中设置号码唯一的条件
然后用MIN()
window函数取最小的数:
SELECT DISTINCT MIN(number) OVER () AS min_number
FROM tablename
GROUP BY number
HAVING COUNT(*) = 1;
参见demo。
使用ROW_NUMBER
:
SELECT *
FROM (SELECT a.*, COUNT(*) OVER(PARTITION BY number) AS cnt
FROM Result a) sub
WHERE cnt = 1
ORDER BY number
LIMIT 1;
输出:
name number cnt
jake 4 1