濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL group by和order by如何一起使用

MySQL group by和order by如何一起使用

熱門標簽:信陽穩(wěn)定外呼系統(tǒng)運營商 百度地圖圖標標注中心 日照旅游地圖標注 芒果電話機器人自動化 湖南人工外呼系統(tǒng)多少錢 申請外呼電話線路 石家莊電商外呼系統(tǒng) 廣東人工電話機器人 南通自動外呼系統(tǒng)軟件

假設有一個表:reward(獎勵表),表結構如下:

CREATE TABLE test.reward (
 id int(11) NOT NULL AUTO_INCREMENT,
 uid int(11) NOT NULL COMMENT '用戶uid',
 money decimal(10, 2) NOT NULL COMMENT '獎勵金額',
 datatime datetime NOT NULL COMMENT '時間',
 PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci
COMMENT = '獎勵表';

表中數據如下:

現在需要查詢每個人領取的最高獎勵并且從大到小排序:

如果直接查詢:

SELECT id, uid, money, datatime FROM reward GROUP BY uid ORDER BY money DESC;

得到如下結果:

沒有得到我們需要的結果,這是因為group by 和 order by 一起使用時,會先使用group by 分組,并取出分組后的第一條數據,所以后面的order by 排序時根據取出來的第一條數據來排序的,但是第一條數據不一定是分組里面的最大數據。

方法一:

既然這樣我們可以先排序,在分組,使用子查詢。

SELECT
 r.id,
 r.uid,
 r.money,
 r.datatime
FROM (SELECT
  id,
  uid,
  money,
  datatime
 FROM reward
 ORDER BY money DESC) r
GROUP BY r.uid
ORDER BY r.money DESC;

方法二:

如果不需要取得整條記錄,則可以使用 max() min()

SELECT id, uid, money, datatime, MAX(money) FROM reward GROUP BY uid ORDER BY MAX(money) DESC;

得到結果:

可能你已經發(fā)現了,使用max()取得的記錄,money字段和max(money)字段不一致,這是因為這里只是取出了該uid的最大值,但是該最大值對應的整條記錄沒有取出來。

如果需要取得整條記錄,則不能使用這種方法,可以使用子查詢。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • mysql中count(), group by, order by使用詳解
  • 深度分析mysql GROUP BY 與 ORDER BY
  • mysql中order by與group by的區(qū)別
  • 深入解析mysql中order by與group by的順序問題
  • Mysql中order by、group by、having的區(qū)別深入分析
  • mysql分組取每組前幾條記錄(排名) 附group by與order by的研究
  • mysql "group by"與"order by"的研究--分類中最新的內容

標簽:天津 公主嶺 合肥 呼和浩特 牡丹江 惠州 沈陽 阿里

巨人網絡通訊聲明:本文標題《MySQL group by和order by如何一起使用》,本文關鍵詞  MySQL,group,和,order,如何,一起,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL group by和order by如何一起使用》相關的同類信息!
  • 本頁收集關于MySQL group by和order by如何一起使用的相關信息資訊供網民參考!
  • 推薦文章
    特克斯县| 牙克石市| 日喀则市| 丰宁| 沈阳市| 日照市| 河北区| 盘锦市| 宁波市| 大足县| 铜鼓县| 曲沃县| 九台市| 尖扎县| 大理市| 芜湖市| 宾川县| 枣强县| 濮阳市| 崇州市| 大庆市| 济宁市| 宾川县| 榕江县| 贵定县| 武鸣县| 南宁市| 从化市| 高青县| 运城市| 江川县| 会东县| 洪湖市| 惠安县| 通化市| 专栏| 左贡县| 阿坝县| 哈巴河县| 罗山县| 桂林市|