select name,desc,count(desc) as c from tmp_table group by name,desc order by c desc limit 9;
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務上思,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108
把name放在前面就是優(yōu)先給name排序,name一樣的就按后面的desc排序。
這個句子就能滿足你的要求。
3.以count(desc)的多少排列name;
不知道這句話什么意思。不過對你想要的結(jié)果沒有什么影響。
另外,列名不要用desc。desc 是數(shù)據(jù)庫中的一個關(guān)鍵字。原則上最好不要用來做列名。
------------------------補充-----------------------
滿足你的第三個條件也很容易,
group by name,desc 變成
group by name,count(desc)就可以了
表結(jié)構(gòu)
ROW_NUMBER() OVER (PARTITION BY category ORDER BY id) AS idx
含義: 按 category 分組, 組內(nèi)按 id 排序, 組內(nèi)排序的序號(行號)作為列 idx
ROW_NUMBER() 在 mysql8 才開始支持, 對于msqyl5.7或?qū)姹镜腗ariaDB,相同功能的實現(xiàn)可以參考如下 sql
要點:
可以看到,兩個結(jié)果,在分組變化的地方,idx開始了重新編號,且結(jié)果與 ROW_NUMBER() 一致.
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數(shù)據(jù)檢測恢復工具。前者使用起來比較簡便。推薦使用。
1. check table 和 repair table
登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現(xiàn)的結(jié)果說Status是OK,則不用修復,如果有Error,可以用:
repair table tabTest;
進行修復,修復之后可以在用check table命令來進行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk適用于MYISAM類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進行說明。當發(fā)現(xiàn)某個數(shù)據(jù)表出現(xiàn)問題時可以使用:
myisamchk tablename.MYI
進行檢測,如果需要修復的話,可以使用:
myisamchk -of tablename.MYI
關(guān)于myisamchk的詳細參數(shù)說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL服務器沒有訪問這個數(shù)據(jù)表,保險的情況下是最好在進行檢測時把MySQL服務器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面啟動MySQL服務器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監(jiān)聽的Sock文件位置,對于使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫存放的位置。
需要注意的時,如果你打算把這條命令放在你的rc.local里面,必須確認在執(zhí)行這條指令時MySQL服務器必須沒有啟動!檢測修復所有數(shù)據(jù)庫(表)
先把分類全取出來..并隨機排序.. 取排在第一個分類 例如是 西裝
然后查詢的時候 order by (category='西裝') desc,category 即可實現(xiàn)要求.
select * from (select * from tablename where A='01' order by B asc) a
union all
select * from (select * from tablename where A='02' order by B desc) a
mysql8.0以前,排序?qū)τ诖蠖鄶?shù)用戶來說都是個“難題”,因為沒有像sqlserver和oracle等數(shù)據(jù)庫有開窗函數(shù),但是也是有方法解決的。就是利用自定義變量,但是理解起來有點難。
但mysql8.0上線后,已經(jīng)支持開窗函數(shù)了。你可以升級最新版。對于低版本,我可以舉個例子你看看,
按person分組排序的
標題名稱:mysql怎么分段排序,mysql的分組排序
URL標題:http://vcdvsql.cn/article0/hedgoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、云服務器、網(wǎng)站策劃、做網(wǎng)站、網(wǎng)站導航、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)