国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MYSQL中group by做分組查詢并排序

2024-07-24 12:36:45
字體:
來源:轉載
供稿:網友

使用 group by 分組后,查詢的列表將按照主鍵的默認 asc 順序排序,使用 order by 只能對分組后的列表起作用,原因是 order by 的優先級低于 group by,那么如何解決分組排序呢,下面我們一起來看具體操作辦法.

那么如何解決使分組后的數據按照主鍵的 desc 排序輸出呢?

答案有兩種方法:

1、使用子查詢先把表進行排序,然后對字表進行 group by 查詢,此時得到的列將是子查詢的得到的一條記錄的列.

2、使用 max 函數對可計算最大值的列進行對比查詢,這種方法將只能使的對比列按照 desc 輸出,不影響其他列.

以上兩種方法的結果不同,使用的時候要按需來使用.

附例子:

  1. 表 tab1 有 3 列:主鍵id、名稱name、登錄時間time 
  2. id name time 
  3. 1 a01 1 
  4. 2 m.survivalescaperooms.com 2 
  5. 3 a03 3 
  6. 4 a02 4 
  7. 5 a01 5 
  8. 6 a04 6 

需求:要求查詢出各用戶的登陸次數和最后登陸時間.

解決辦法:第一種方法,代碼如下:

select sub.name,count(sub.id) as login_nums,sub.time as last_time from (select * from tab1 order by time) sub 

group by sub.name

注意:此時查詢得到的每一個列都屬于原表的同一行記錄,如指定查詢 id,則 id 也是最新時間那行記錄的id Vevb.com

第二種方法,代碼如下:

  1. select name,count(id) as login_nums,max(timeas last_time 
  2. from tab1 
  3. group by name 

注意此時查詢得到的每個列已經不再屬于原表的同一行記錄了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳新县| 无为县| 沧源| 桦南县| 保康县| 玉溪市| 精河县| 砀山县| 邵阳县| 石台县| 和田市| 栾城县| 榆社县| 方山县| 左云县| 德格县| 河津市| 丹寨县| 都江堰市| 西安市| 汉源县| 弋阳县| 涿州市| 历史| 南川市| 西青区| 嘉兴市| 沁源县| 卓资县| 汤阴县| 合江县| 叶城县| 扎鲁特旗| 建昌县| 东明县| 安庆市| 石景山区| 大同市| 巴彦淖尔市| 明光市| 舞钢市|