最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中group by與max()一起使用的坑

 更新時間:2023年08月09日 15:09:14   作者:搬磚,攢路費  
最近在做一個項目,發(fā)現(xiàn)用之前SQL語句導出的余額與客戶人員最近消費記錄所顯示的余額不一致,本文就來了解一下這個錯誤,感興趣的可以了解一下

前言

國慶之間在進行一個消費項目切換時,發(fā)現(xiàn)用之前SQL語句導出的余額與客戶人員最近消費記錄所顯示的余額不一致,客戶人員又比較多,還好及時發(fā)現(xiàn)沒涼成大錯!現(xiàn)在來記錄一下。

一 GROUP BY的簡單介紹

GROUP BY顧名思義,group: 分組,by: 以…; 組合起中來就是以什么來分組。在mysql理解為以一個字段或多個字段來分組顯示結(jié)果集,如下。

數(shù)據(jù)表

執(zhí)行以下語句

select *from scgroup by sid

結(jié)果如下

結(jié)果以sid分組表示出來了,細心一點會發(fā)現(xiàn)分組后顯示的記錄是分組前第一條sid對應的值,執(zhí)行以下語句可以觀察到,如下。

SELECT *,GROUP_CONCAT(score)
FROM sc
GROUP BY sid;

二 MAX()的簡單介紹

MAX()是mysql里面的一個聚合函數(shù),用來取最大值的,如下。

SELECT MAX(score)
FROM sc;

結(jié)果顯示score列的最大值,是沒有問題的。

三 group by與max()一起使用

要求:導出sid中score值最大的那條記錄(類似與導余額)

之前導余額用的語句類似以下SQL語句

SELECT sid,cid,MAX(score) as score
FROM sc
GROUP BY sid;

咋一看,score的值篩選出來是最大的,沒有問題,但是核對score最高值對應的記錄時發(fā)現(xiàn)是錯的,如下

四 原因

我分析了下原因,主要是由group by 分組后顯示的是第一條記錄,而max()取的是相同sid中的最大score值造成的,如下

SELECT sid,cid,score,GROUP_CONCAT(score)
FROM sc
GROUP BY sid;

相當于把第一條記錄的score值用最大值替換了,這顯然是不對的。

五 解決辦法

我的方法是先用子查詢把sid和其最大值score先查出來,然后再和原表匹配,如下

SELECT a.sid,a.cid,a.score
FROM
sc as a,
(SELECT sid,max(score) as score
FROM sc
GROUP BY sid) as b
WHERE a.sid=b.sid AND a.score=b.score

當然,解決方法不止這一種,具體情況具體討論。

到此這篇關于MySQL中group by與max()一起使用的坑的文章就介紹到這了,更多相關MySQL group by與max()一起使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL在不知道列名情況下的注入詳解

    MySQL在不知道列名情況下的注入詳解

    這篇文章主要給大家介紹了關于MySQL在不知道列名情況下的注入的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • mysql 表空間及索引的查看方法

    mysql 表空間及索引的查看方法

    mysql 表空間及索引的查看方法,需要的朋友可以參考下。
    2011-07-07
  • Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析

    Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析

    這篇文章主要介紹了Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 登錄MySQL時出現(xiàn)Authentication plugin ‘caching_sha2_password‘ reported error錯誤的解決方案

    登錄MySQL時出現(xiàn)Authentication plugin ‘caching_sha2_pass

    這篇文章主要介紹了登錄MySQL時出現(xiàn)Authentication plugin ‘caching_sha2_password‘ reported error錯誤的解決方案,文中通過圖文結(jié)合的形式講解的非常詳細,對大家的解決問題有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • mysql仿oracle的decode效果查詢

    mysql仿oracle的decode效果查詢

    今天遇到群里發(fā)的一個問題,覺得有點意思,發(fā)上來看一下
    2011-04-04
  • MySQL詳細匯總常用函數(shù)

    MySQL詳細匯總常用函數(shù)

    MySQL數(shù)據(jù)庫中提供了很豐富的函數(shù)。MySQL函數(shù)包括數(shù)學函數(shù)、字符串函數(shù)、日期和時間函數(shù)、條件判斷函數(shù)、系統(tǒng)信息函數(shù)、加密函數(shù)、格式化函數(shù)等。通過這些函數(shù),可以簡化用戶的操作。本期將帶你總結(jié)常用函數(shù)都有哪些
    2021-11-11
  • Mysql explain用法與結(jié)果深入分析

    Mysql explain用法與結(jié)果深入分析

    這篇文章主要給大家介紹了關于Mysql explain用法與結(jié)果分析的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • MySQL數(shù)據(jù)導入導出的三種辦法總結(jié)

    MySQL數(shù)據(jù)導入導出的三種辦法總結(jié)

    當我們需要切換數(shù)據(jù)庫或備份數(shù)據(jù)時,導入和導出數(shù)據(jù)庫是一個常見的操作,下面這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)導入導出的三種辦法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-05-05
  • mysql 卡死 大部分線程長時間處于sending data的狀態(tài)

    mysql 卡死 大部分線程長時間處于sending data的狀態(tài)

    首先說明一下,這是個無頭的案子,雖然問題貌似解決了,不過到現(xiàn)在我也沒有答案,只是把這個問題拿出來晾晾
    2008-11-11
  • mysql 批量查詢?nèi)∶恳唤M最新一條數(shù)據(jù)

    mysql 批量查詢?nèi)∶恳唤M最新一條數(shù)據(jù)

    根據(jù)車牌號查詢最新的一條交車記錄的‘合同號’ ,這里只需要查詢‘合同號’這個字段,這篇文章主要介紹了mysql 批量查詢?nèi)∶恳唤M最新一條數(shù)據(jù),需要的朋友可以參考下
    2024-02-02

最新評論

尤溪县| 天等县| 横峰县| 瑞安市| 白河县| 伊金霍洛旗| 留坝县| 武功县| 阿荣旗| 岳阳县| 石门县| 盐源县| 八宿县| 神木县| 布尔津县| 霍州市| 巴林右旗| 怀来县| 天祝| 清水河县| 中阳县| 西青区| 三原县| 江永县| 寻乌县| 双鸭山市| 景东| 家居| 米林县| 罗定市| 东辽县| 和硕县| 普兰县| 金寨县| 大荔县| 济源市| 马公市| 吉安县| 黄陵县| 武平县| 北碚区|