關於sql,group by查詢多字段的問題。

2021-10-01 21:34:46 字數 1351 閱讀 4145

文章優先發表在個人部落格,後續更新可能忘記同步到csdn。

個人部落格本篇文章位置:

使用group by後,每一類的資料都是取自預設排序的第一條。id

name

type

score1張三

1662李四

1773王五

2184趙六

2305田七

3156汾九

399

select

max(score)

from xdx_test group

bytype

;

2-1:也就是說查詢結果如下。

name

score

李四77

趙六30

汾九99

2-2:這時你的sql應該怎麼寫呢?很多人可能和我想的一樣直接在第一條sql多加個name不就好了?

select name,

max(score)

from xdx_test group

bytype

;

這樣的查詢結果為:

name

score

張三77

王五30

田七99

2-3:很顯然這個結果不是我們想要的,正確的sql如下:

select name,score

from

xdx_test

where

(type

, score)in(

select

type

,max

(score)

from

xdx_test

group

bytype

)

2-4:如果再往表裡面插入一條資料 id=7,name=香十,type=3,score=99

那麼你就要再進行一次分組,確保資料的不重複。

上面這個sql,我們其實是根據type、和score來查詢資料的。所有可能存在重複的資料。

比如這個時候的,type=3,score=99,有兩個人,香十和汾九

1、我們使用group by 分組的時候,會按照預設排序選取一條資料

2、當我們使用group by查詢多個欄位的時候,select type,max(score) from,多個欄位是分開取的。如果沒有限定條件預設都取第一條資料。所有會看到 type,和max(score),取的並不是同一條資料。

Hibernate多對多查詢

乙個老師教許多學生,乙個學生被許多老師教,乙個學生有好多書,同一種書被許多同學擁有.要查詢教擁有書 a 的學生的老師 hql如何寫呀?如何取值?classteacher classstudent classbook hql語句 select t from teacher t join t.stude...

mybatis 多對多查詢

查詢使用者及使用者購買商品資訊。查詢主表是 使用者表 user 關聯表 由於使用者和商品沒有直接關聯,通過訂單和訂單明細進行關聯,所以關聯表是 orders orderdetail items select orders.order表的唯一標識 user表的唯一標識 user.username,us...

django model 多對多查詢

看一下自己的models檔案 class hostlist models.model ip models.ipaddressfield unique true,verbose name u ip位址 hostname models.charfield max length 30,verbose na...