MySQL中count 的條件統計方式

2021-09-29 01:45:33 字數 1347 閱讀 8645

前幾天做筆試題時遇到乙個問題,如下:

乙個info表內容如下:

date

result

2019-10-12

high

2019-10-12

low2019-10-12

high

2019-10-16

low2019-10-16

low2019-10-16

high

請寫出相應的sql語句,以得出以下的查詢結果:

date

lowhigh

2019-10-1212

2019-10-1621

當時沒做出來,後面查詢資料後得出了答案:

select

date

,count

(result=

'low'

ornull

)as low,

count

(result=

'high'

ornull

)as high

from info group

bydate

;

如何理解其中的"or null"呢?

我是這樣子理解的,如果result不等於要統計的值的時候,就把它當做null值來計算,即count(null),因為count()是不會把null計算進去的。

除此之外,其實還有其他的條件統計方式,我總結如下:

1.使用if表示式

select

date

,count(if

(result=

'low',1

,null))

as low,

count(if

(result=

'high',1

,null))

as high

from info group

bydate

;

2.使用case when表示式
select

date

,count

(case

when result=

'low'

then

1end

)as low,

count

(case

when result=

'high'

then

1end

)as high

from info group

bydate

;

MySql中的count 函式

1.count 函式是用來統計表中記錄的乙個函式,返回匹配條件的行數。2.count 語法 1 count 包括所有列,返回表中的記錄數,相當於統計表的行數,在統計結果的時候,不會忽略列值為null的記錄。2 count 1 忽略所有列,1表示乙個固定值,也可以用count 2 count 3 代替...

MySql中的count函式

1.count 函式是用來統計表中記錄的乙個函式,返回匹配條件的行數。2.count 語法 1 count 包括所有列,返回表中的記錄數,相當於統計表的行數,在統計結果的時候,不會忽略列值為null的記錄。2 count 1 忽略所有列,1表示乙個固定值,也可以用count 2 count 3 代替...

mysql中count 的用法

概念 count 是mysql中用來統計表中記錄的乙個函式,返回條件的行數 用法 返回表中的記錄數 包括所有列 相當於統計表的行數 不會忽略列值為null的記錄 忽略所有列,1表示乙個固定值,也可以用count 2 count 3 代替 不會忽略列值為null的記錄 返回列名指定列的記錄數,在統計結...