成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

MySQL SQL連續(xù)分組求分組范圍?

網(wǎng)友解答: 這個可以用到case...when...,case...when...有點(diǎn)類似我們在其它編程語言中的if...else..功能。通過case...when...的邏輯判斷,我

網(wǎng)友解答:

這個可以用到case...when...,case...when...有點(diǎn)類似我們在其它編程語言中的if...else..功能。通過case...when...的邏輯判斷,我們可以做到分組統(tǒng)計。

case...when...數(shù)據(jù)的邏輯判斷

語法上可以這么理解:

case 字段名 when 值 then 符合邏輯時指定的值 else 不符合邏輯指定的值 end

簡單來說就是當(dāng)字段名符合條件時,我們可以指定一個值,當(dāng)不符合條件時我們可以指定另外一個值。

題主描述的問題就可以這樣來解決:

case when (number<2 then '1-1' when (number between 3 and 6) then '3-6' .... else end)

這樣就可以解決題主所提到的問題。

在這里我舉一個例子,比如我們需要統(tǒng)計某個省份的用戶交易金額區(qū)間分布,就可以結(jié)合group by進(jìn)行相應(yīng)的統(tǒng)計,達(dá)到目的。

分步的方法-逐個區(qū)間進(jìn)行統(tǒng)計

我們也可以利用where條件進(jìn)行統(tǒng)計,where條件的統(tǒng)計就需要我們利用union的方法將滿足條件的各個查詢結(jié)果合并在一起,得到最終的統(tǒng)計結(jié)果。比如

select count(number) number_count from numbers where number between 3 and 6

union

select count(number) number_count from numbers where number between 8 and 12

union

...

不過這樣的話比較麻煩而且比較費(fèi)時,因此不推薦這么去做,通過case...when....去處理分區(qū)間的統(tǒng)計是一個不錯的選擇。

網(wǎng)友解答:

可以 用case when 寫sql的時候多拼一列 例如 case when number 100 and number <102 then 1 when ...... 然后 group by 它 就可以實(shí)現(xiàn)了

標(biāo)簽: