[SQL ] 查詢前十大的資料
資料庫名稱:Oracle
資料庫版本:10.2
內容/問題描述:
Table :
Land ( Name CHAR(10), Price INT ) ;
敝人正在寫資料庫的作業,目前遇到一個障礙,
作業的需求之一是要在一個表格當中,查出前十高的地價,所對應的地名,
我嚐試了以下寫法
SELECT *
FROM Land
ORDER BY Price
LIMIT 10 ; // 這行是跟學長請教的
這個語法在 MySQL 可以用,
但是在 Oracle 不能用,
而且也不是完全符合我的需求。
根據老師的題義,
我是要列出十個不同的地價,
而這十個地價是前十高的,
而不同的地可能有一樣的地價,
也就是說我要列出來的地名是可能超過10筆的。
我原先的想法是利用 Nested Query
SELECT *
FROM a AS Land
WHERE a.Price >=
SELECT MIN(Price)
FROM Land
WHERE
SELECT Price
FROM b AS Land
GROUP BY b.Price
ORDER BY b.Price
LIMIT 10
就是先依照價錢 group 以後
列出前十高的價錢,找出當中最便宜的那個
之後把地價大於等於這個價錢的地名都印出來
可是 LIMIT 不能用,我就覺得很困惑,無能為力
而且老師要求的是要用標準語法,
就算 Oracle 能用 LIMIT 我似乎也不能用上他
請教前輩們,感謝。
--
To iterate is human, to recurse is divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.42
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 5 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章