2012-08-09 22 views
1

我是新來的SQL,想知道是否有一種方法來進一步優化我的查詢。例如,我有一張有學生姓名和成績的表格,我想找到學生姓名最高的成績。我來到儘可能如何進一步指定一個SQLite查詢

SELECT name FROM students ORDER BY grade DESC 

但是,返回所有的名稱。我想過使用LIMIT,但例如,如果有2名學生的成績相同,我希望他們都能夠返回。

有沒有辦法?

+6

爲什麼巨大的賞金? – boisvert 2013-04-23 22:15:08

+3

@boisvert因爲FREEEEEEDOM !!! – Lamak 2013-04-24 18:17:21

回答

6

我認爲這將適用於sqlite。

select name from students where grade = (select max(grade) from students); 
+0

酷,不知道我可以定義年級,非常感謝! – bella 2012-08-09 22:56:12

+0

我應該在桌子代表交換中報告這個陰影。 – Kermit 2013-04-24 19:29:37

0

你也可以做如下:)

+0

我在SQLite文檔中找不到任何內容來表明它支持分析功能。 – 2013-04-24 09:52:44

+0

你可能是對的,我沒有注意到sqllite標籤。此聲明適用於microsft sql server 2005及更高版本 – 2013-04-24 13:04:30

+0

如何使簡單複雜:) – boisvert 2013-04-24 20:05:07

1

它沒有提到這個名字是一個主鍵或不那麼它是更好地使用它像這樣(不假設名PK) :

select distinct name from students where grade = (select max(grade) from students);