『壹』 sql查詢第幾名的語句
select * from score as t1 where
(select count(*) from score as t2 where t2.subject=t1.subject and t2.score>=t1.score)=3
錯了,上面是每科成績第三,看下面的
select top 1 * from
(select top 3 avg(score) as avgscore,name from score group by name order by avgscore desc)
order by avgscore
『貳』 sql的第三名到第六名的成績
我們先分析一下,假設有一個表叫grade,裡面有一列叫A,A中記錄的是很多學生的成績,那麼我們可以採取這種辦法求出第三名學生的成績(嵌套三次查詢語句):
『叄』 SQL 怎樣查詢 單科成績排名第3名的學生
寫個笨點的方法,
SELECT * INTO #TempA FROM score ORDER BY degree DESC
SELECT TOP 1 * FROM #TempA WHERE degree NOT IN(SELECT TOP 2 degree FROM #TempA )
『肆』 請教一個問題,SQL怎麼查詢出排名第三的人
通過一條SQL選出排列第三的所有人,我可以把思路寫給你,自己調試完善下。
第一步,從大到小選出沒有重復的分數:select DISTINCT corse from tb order by corse desc
第二步,從小到大選出前三位:select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse
第三步,選出第三位:select top 1 corse from (select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse)
第四步,選出所有第三名的人:select * from (select top 1 corse from (select top 3 corse from (select DISTINCT corse from tb order by corse desc) order by corse))
『伍』 什麼資料庫比較熱門
總體來說,主流資料庫並不存在明確的好壞之分,每一種資料庫都有各自的優缺點,最主要還是看它是否能夠滿足您的需求。
總的來說,選擇資料庫可以從以下角度考慮:
從個人角度出發的話,如果是以學習和小型業務需求為主,推薦使用MySQL,它的優勢在於:
成本(免費)
自由(完全開源,適用多個場景)
性能(體積小但速度快)
這三點決定了MySQL資料庫的超高性價比。並且目前有不少主流公司仍然青睞MySQL,大名鼎鼎的Fackbook就依然在延續MySQL的使用。
2. 如果是企業角度出發,主流的大型資料庫如Oracle、Sql Server...以及近些年來大數據領域十分火熱的非關系型資料庫,例如Redis、HBse等等,都可以作為考慮的對象。
接下來具體列舉一些常用資料庫的優缺點,希望能為大家提供參考:
MySQL:
優勢:
MySQL是開放源代碼的資料庫,任何人都可以獲得該資料庫的源代碼。
MySQL能夠實現跨平台操作,可以在Windows、UNIX、Linux和Mac OS等操作系統上運行。
MySQL資料庫是一款自由軟體,大部分應用場景下都是免費使用。
MySQL功能強大且使用方便,社區生態繁榮,有諸多學習資料。
缺點:規模小,功能有限。
SQL Server
高度可擴展:可以從單一的筆記本電腦上運行任何東西或以高倍雲伺服器網路運行,或在兩者之間任何東西。
「雖然說是「任何東西」,但是仍然要滿足相關的軟體和硬體的要求「
生態鏈廣:具有內置的商務智能工具,以及一系列的分析和報告工具,可以創建資料庫、備份、復制,帶來了更好的安全性。
Oracle
Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,具有以下特點:
可移植性好(在各類大、中、小、微機環境中都適用)
使用方便、
功能強
因此,Oracle是一種高效率、可靠性好的、適應高吞吐量的資料庫解決方案。
DB2
DB2是IBM開發的一種大型關系型資料庫平台。它支持多用戶或應用程序在同一條SQL 語句中查詢不同database甚至不同DBMS中的數據。它的應用特點如下:
支持面向對象的編程:db2支持復雜的數據結構,如無結構文本對象,可以對無結構文本對象進行布爾匹配、最接近匹配和任意匹配等搜索。可以建立用戶數據類型和用戶自定義函數。
支持多媒體應用程序:db2支持大二分對象(blob),允許在資料庫中存取二進制大對象和文本大對象。其中,二進制大對象可以用來存儲多媒體對象。
具有良好的備份和恢復能力
支持存儲過程和觸發器,用戶可以在建表時顯示的定義復雜的完整性規則
支持異構分布式資料庫訪問,支持數據復制
PostgreSQL
PostgreSQL 是一個免費的對象-關系資料庫伺服器(ORDBMS),它的 Slogan 是 「世界上最先進的開源關系型資料庫」。
PostgreSQL具有如下特徵:
函數:通過函數,可以在資料庫伺服器端執行指令程序。
索引:用戶可以自定義索引方法,或使用內置的 B 樹,哈希表與 GiST 索引。
觸發器:觸發器是由SQL語句查詢所觸發的事件。如:一個INSERT語句可能觸發一個檢查數據完整性的觸發器。觸發器通常由INSERT或UPDATE語句觸發。 多版本並發控制:PostgreSQL使用多版本並發控制(MVCC,Multiversion concurrency control)系統進行並發控制,該系統向每個用戶提供了一個資料庫的」快照」,用戶在事務內所作的每個修改,對於其他的用戶都不可見,直到該事務成功提交。
規則:規則(RULE)允許一個查詢能被重寫,通常用來實現對視圖(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、刪除(DELETE)。
數據類型:包括文本、任意精度的數值數組、JSON 數據、枚舉類型、XML 數據等。
全文檢索:通過 Tsearch2 或 OpenFTS,8.3版本中內嵌 Tsearch2。
NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 資料庫的外部數據包裝器。
數據倉庫:能平滑遷移至同屬 PostgreSQL 生態的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 進行 ETL
『陸』 SQL語句:查詢各班成績前3的同學姓名
分析如下:
可以用row_number函數來解決。
1、創建測試表,插入數據:
(資料來源:網路:SQL語句)
『柒』 1請用SQL語句統計平均分大於5000的報紙 2請用SQL語句寫出2016-12-27日銷售額的前三名第三名並列也寫出來
1、select * from tb_paper where paperId =
select paperId from tb_sale where group by p.paperId having avg(s.sale_amount)>5000)
2、select top 3 distance(sale_date) from tb_sale
『捌』 用sql語句,查詢每個班級成績排名前三名的學生姓名
1、首先在打開的SQLServer中,假設有兩條數據中,包含有【張】,但是這個張一前一後,如下圖所示。
『玖』 10萬條成績數據要查出第一名和第三名,怎樣寫sql語句最好
先無序查出所有數據,然後自己做3次冒泡排序就可以選出來了....電腦運算量只有30萬次.......- -
『拾』 用sql查詢第三名到第五名的同學,怎麼用呢
我們先分析一下,假設有一個表叫grade,裡面有一列叫A,A中記錄的是很多學生的成績,那麼我們可以採取這種辦法求出第三名學生的成績(嵌套三次查詢語句):
select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))
同樣,將這個句嵌套五次就可以取出第五名學生成績:
select min(A) AS A5 from grade where A>(select min(A) AS A4 from grade where A>(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))))
最後一步,寫一個語句,取上次者之間的值,最終結果是:
select A from grade where A>=(...) and A<=(.....)
第一個括弧用步驟一的語句,第二個括弧用步驟二的語句,結果是:
select A from grade where A>=(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade))) and A<=(
select min(A) AS A5 from grade where A>(select min(A) AS A4 from grade where A>(select min(A) AS A3 from grade where A>(select min(A) AS A2 from grade where A>(SELECT Min(A) AS A1 FROM grade)))))
結果經過驗證,沒有問題.