假設我有一個包含三列的表:ID,名稱和用戶。如何執行此查詢以選擇具有最高編號的N行col :)
我想選擇用戶數量最多的3行,我希望行按名稱升序排序。我如何實現這一目標?
我用
select Name from TABLE where ID IN (select ID from Tablesorder by Users desc limit 3)
但在/ ANY不被支持。任何其他方式? 謝謝
假設我有一個包含三列的表:ID,名稱和用戶。如何執行此查詢以選擇具有最高編號的N行col :)
我想選擇用戶數量最多的3行,我希望行按名稱升序排序。我如何實現這一目標?
我用
select Name from TABLE where ID IN (select ID from Tablesorder by Users desc limit 3)
但在/ ANY不被支持。任何其他方式? 謝謝
當允許子查詢時,您可以使用它。 它爲列用戶提取最高值的3條記錄。這3個結果將在外部查詢中進行排序。
select Name from
(
select Name
from Tables
order by Users desc
limit 3
) as temp
ORDER BY Name ASC
不用寫ASC。其默認情況下ORDER BY – FallAndLearn
沒有必要,但它會更清楚的OP雖然。 – Johan
在MySQL:
SELECT id, name, users
FROM (SELECT id,name,users FROM tablename ORDER BY users DESC LIMIT 3) as a
ORDER BY name;
在SQL Server
SELECT id, name, users
FROM (SELECT TOP 3 id,name,users FROM tablename ORDER BY users DESC) as a
ORDER BY name;
在Oracle
SELECT id, name, users
FROM (SELECT id,name,users FROM tablename ORDER BY users DESC) as a
WHERE ROWNUM<=3
ORDER BY name;
OP的示例查詢包含'LIMIT 3'。我認爲Oracle和SqlServer的例子沒有必要。 – Johan
SQL的哪個版本? –
你正在使用哪個數據庫 – FallAndLearn
我的意思是說mysql ..謝謝你的回答 – Snake