前幾天做筆試題時遇到乙個問題,如下:
乙個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的記錄 返回列名指定列的記錄數,在統計結...