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

MySQL中g(shù)roup by與max()一起使用的坑

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

前言

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

一 GROUP BY的簡單介紹

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

數(shù)據(jù)表

執(zhí)行以下語句

select *from scgroup by sid

結(jié)果如下

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

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

二 MAX()的簡單介紹

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

SELECT MAX(score)
FROM sc;

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

三 group by與max()一起使用

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

之前導(dǎo)余額用的語句類似以下SQL語句

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

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

四 原因

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

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

相當(dāng)于把第一條記錄的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

當(dāng)然,解決方法不止這一種,具體情況具體討論。

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

相關(guān)文章

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

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

    這篇文章主要給大家介紹了關(guān)于MySQL在不知道列名情況下的注入的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    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é)合的形式講解的非常詳細(xì),對大家的解決問題有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • mysql仿oracle的decode效果查詢

    mysql仿oracle的decode效果查詢

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

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

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

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

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

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

    當(dāng)我們需要切換數(shù)據(jù)庫或備份數(shù)據(jù)時,導(dǎo)入和導(dǎo)出數(shù)據(jù)庫是一個常見的操作,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)導(dǎo)入導(dǎo)出的三種辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    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

最新評論

浙江省| 达州市| 家居| 新源县| 靖江市| 咸宁市| 惠水县| 民县| 陕西省| 独山县| 山阳县| 综艺| 宕昌县| 黄陵县| 龙门县| 汕头市| 东明县| 新绛县| 临夏市| 仁化县| 辽源市| 行唐县| 兴仁县| 陆川县| 休宁县| 石景山区| 登封市| 墨江| 夏邑县| 邢台县| 邛崃市| 赤峰市| 四川省| 晋中市| 高要市| 馆陶县| 临海市| 防城港市| 石家庄市| 永昌县| 三明市|