不使用聚合函数SQL的最小值



我有两个表:t1(id, ticket)t2(id, value)

我想从t1中选择具有最小值的票证,而不使用聚合函数(MIN(。我必须使用ANY或ALL、EXIST或IN。Value是一个数字。

这两个表是根据id链接的。

有人能帮我吗?非常感谢。

SELECT ticket 
FROM t1
WHERE id= (SELECT id FROM t2);

如果数据库是Oracle10g+或MySQL8+,则可以使用DENSE_RANK()等分析函数

SELECT ticket
FROM
(
SELECT t1.*, DENSE_RANK() OVER (PARTITION BY t2.ID ORDER BY t2.VALUE) AS dr  
FROM t1
JOIN t2 
ON t2.id = t1.ID
)
WHERE dr = 1;

这样做:

select t1.tickets from t1,t2 
where t1.id-t2.id and t1.id in (select id from t2 where 
value in (select min(value) from t2));

最新更新