这是我尝试的查询:好吧,如果我有1,2,3,4,5的项目。它应该给4& 5但这是返回2,3,4,5。如何在没有内置函数的情况下执行此操作
SELECT S.item, max(B.QUANTITY)
FROM Bucket B, Store S
WHERE S.Store_ID = B.Store_ID
AND QUANTITY > (SELECT min(QUANTITY)
FROM Store S, Bucket B
WHERE S.Store_ID = B.Store_ID)
GROUP BY S.item
答案 0 :(得分:0)
试试这个:
select top (2) * from (
SELECT S.item, max(B.QUANTITY)
FROM Bucket B, Store S
WHERE S.Store_ID = B.Store_ID
AND QUANTITY > (SELECT min(QUANTITY)
FROM Store S, Bucket B
WHERE S.Store_ID = B.Store_ID)
GROUP BY S.item
) order by [Item] desc
您可能需要将[Item]替换为包含您要查找的“4”和“5”值的列。
答案 1 :(得分:0)
假设使用Oracle-SQL,您可以这样做:
SELECT *
FROM (SELECT S.item, MAX(B.QUANTITY)
FROM Bucket B, Store S
WHERE S.Store_ID = B.Store_ID
GROUP BY S.item
ORDER BY MAX(B.QUANTITY) DESC)
WHERE ROWNUM <= 2;
编辑:添加了一个groupBy,相信没有它就行不通!