select a.*,
專注于為中小企業(yè)提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)麟游免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
(select count(*) from tbl where col=a.col) as rownum
from tbl a;
mysql 沒有oracle里面的rownum函數(shù),用這個sql可以模擬下,但是如果數(shù)據(jù)量大的話,可能執(zhí)行很慢。
0 這是個老話題了
set @rownum=0;
select a.*, b.*, @rownum := @rownum +1 as rownum from a, b;
1 缺點:每次調(diào)用前需設(shè)置 set @rownum=0; 否則在請求的同一次會話中,這個值會累加。
需要用row_number來給分組添加序號。
1、創(chuàng)建測試表,插入數(shù)據(jù):
create?table?test(sid?int,sname?varchar(20),sclass?varchar(20),score?int);?insert?into?test?values?(1,'張三','一年一班',100)insert?into?test?values?(2,'李四','一年一班',78)insert?into?test?values?(3,'王五','一年一班',67)insert?into?test?values?(4,'趙六','一年一班',87)insert?into?test?values?(5,'badkano','一年二班',98)insert?into?test?values?(6,'百度知道團長','一年二班',99)insert?into?test?values?(7,'du小小動','一年二班',99)insert?into?test?values?(8,'劉備','一年三班',56)insert?into?test?values?(9,'張飛','一年三班',67)insert?into?test?values?(10,'關(guān)羽','一年三班',76)
2、要求按照班級總分給出班級排名(即序號),執(zhí)行語句:
1
select?row_number()?over?(order?by?score?desc)?排名,sclass?班級,score?總分?from?(select?sclass,SUM(score)?score?from?test?group?by?sclass)?t
3、查詢結(jié)果:
alter table abc add num int unsigned auto_increment
如果同時為主鍵的話,可以這樣寫
alter table abc add num int unsigned primary key auto_increment
__________________________________________
to:數(shù)據(jù)庫強者 不ok