下面說個簡單列子
需求:查詢出每個班級人數,以及各班年齡最大的那一位
現在有一張student表如下:
這個sql用到了substring_index(str,delim,count)、group_concat(expr)1、group_concat(expr)意思是 拼接expr,以『 ,』連線,可以使用這個函式進行排序
group_concat(age order by age desc)這句sql得到的結果是:
select group_concat(age order by age desc)如果加上分組的話from student
2、substring_index(str,delim,count)意思是以delim分割str,取第count個元素
注意:函式group_concat,但在使用時,肯能導致如下錯誤。
原因:group_concat截斷了結果,group_concat有個最大長度的限制,超過最大長度就會被截斷掉error 1260 (hy000): row 17 was cut
by
group_concat()
解決:
set
global
group_concat_max_len=102400;
mysql 先排序再分組的sql語句實現
最近專案中有乙個需求,需要先分組,再排序的功能。搞了好久,經過敏大大 後台兄弟 指導,終於搞出來了,分享給大家 demo 學生資訊表 第一時間想到 sql select from t test group by name,type order by score desc 結果 發現,並不能滿足我們需...
mysql子查詢先排序再分組的問題
有表如下,要找到 family name 為 green 和 smith 的身高最高的兩個人的 given name。id family name given name height 1 smith mike 157 2 smith ashlin 165 3 smith eason 181 4 sm...
oracle先排序再分頁
oracle排序分頁查詢和mysql資料庫的語句還不一樣,這裡做簡單的記錄。select a.rownum rn from select from v log a order by operatetime desc結果 可以發現,按時間排序了,但是rownum並不是從小到大,因為oracle是先生成...