mysql分組統計 顯示統計為0的項

時間 2021-10-16 11:01:39

1樓:嗬喲嗬喲拔蘿蔔

with

a1 as

(select uname,count(uname) as sl from #t1 where urs='a' group by uname),

a2 as

(select uname,count(uname) as sl from #t1 where urs='b' group by uname),

a3 as

(select uname,count(uname) as sl from #t1 where urs='c' group by uname)

select distinct t.uname,'a' as rs,isnull(a1.sl,0) as sl from #t1 as t left join a1 on t.

uname=a1.uname

union

select distinct t.uname,'b' as rs,isnull(a2.sl,0) as sl from #t1 as t left join a2 on t.

uname=a2.uname

union

select distinct t.uname,'c' as rs,isnull(a3.sl,0) as sl from #t1 as t left join a3 on t.

uname=a3.uname

union

select uname,'i--->',count(uname) as sl from #t1 group by uname

order by t.uname

-------------------------------------

uname rs sl

李四 a 0

李四 b 3

李四 c 0

李四 i---> 3

王五 a 1

王五 b 0

王五 c 1

王五 i---> 2

張三 a 3

張三 b 1

張三 c 1

張三 i---> 5

2樓:匿名使用者

可直接用巢狀查詢。

方法如下:

如資料:

id name

1 a

1 b

2 c

2 d

3 e

3 f

3 g

3 h

select count(t.counts) from(select id,count(*) counts from 表名 group by id) t

這樣得到的結果就是3。

3樓:abul阿寶

1、如果只是要【分別統計出每個使用者每種結果的次數】,那只需要

select name,result,count(1) count

from info

group by name,result

這個應該是知道的。

2、但要求是【0也要有單獨的一行記錄】,那相當於要填充幾條0的結果,可以通過join的笛卡爾積連線,實現所有可能,↓

select * from (select distinct `name` from info)t1,(select distinct result from info)t2

3、此時已經快接近結果了,只需將上面兩個結果集進行左連線,再分組即可↓

select m.*,count(n.result) count from

(select * from (select distinct `name` from info)t1,(select distinct result from info)t2)m

left join

info n on m.`name`=n.`name` and m.result=n.result

group by m.`name`,m.result

4、由於需要【增加每個使用者的總運算元】,只需要在最後面加上with rollup即可,mysql裡的一個關鍵字,專門用來分組統計,↓

select m.*,count(n.result) count from

(select * from (select distinct `name` from info)t1,(select distinct result from info)t2)m

left join

info n on m.`name`=n.`name` and m.result=n.result

group by m.`name`,m.result

with rollup

看到沒,很接近結果了。

5、整理優化下,把最後一條總的統計過濾掉,總運算元加進去

select t.`name`,ifnull(t.result,'總操作') result,t.count

from (select m.*,count(n.result) count

from (select * from (select distinct `name` from info)t1,(select distinct result from info)t2)m

left join

info n on m.`name`=n.`name` and m.result=n.result

group by m.`name`,m.result

with rollup

)twhere t.name is not null

4樓:

select name ,result ,count(*) from info group by name result;

select name ,sum(result) from info group by name;

mysql中,先分組,按某個欄位計數,然後把計算出的數求和,怎麼寫,

5樓:匿名使用者

求和很簡單呀,套一層sql語句

就可以了,中間是你的sql語句,取出來的欄位最好起個別名(這裡用val),臨時的那個結果也給起個別名(這裡用t):

select sum ( t.val ) from(select count(distinct(da1.studentno)) as val from dcs_attendance da1 group by from_unixtime(da1.

inserttime,'%y%m%d')

) t至於你還要做其他的,得看其他的資料關係了,現有的資訊沒法做。

mysql中分類查詢統計數量

6樓:弓枋春

我試過了,一條語句我做不到,join union不行,條件語句也不行,分成四段,單人間/多人間/情侶間/**間,最後合在一起就行了

select hid,count(*) as '單人間數' from `hotelinfo` where type=1 group by hid;

select hid,count(*) as '雙人間數' from `hotelinfo` where type=2 group by hid;

。。。。。

7樓:匿名使用者

這個我試了一下,結果能輸出你想要的結果,只是得php,foreach返回的資料組合成你想要的陣列

select hotelid, roomtype, count( roomtype ) as n

from `test`

where 1

group by hotelid, roomtypelimit 0 , 30

8樓:

select bookid,sum(state1) total from 表名 group by code order by code

mysql是一個關係型資料庫管理系統,由瑞典mysql ab 公司開發,目前屬於 oracle 旗下產品。mysql 是最流行的關係型資料庫管理系統之一。可以比喻為一個有序管理的超級大倉庫

mysql如何統計表大小,mysql中如何統計一個資料庫中每張表的行數

表統計資訊是資料庫基於成本的優化器最重要的參考資訊 統計資訊不準確,優化器可能給出不夠優化的執行計劃或者是錯誤的執行計劃。對統計資訊的計算分為非持久化統計資訊 實時計算 與持久化統計資訊。非持久化統計資訊 統計資訊沒有儲存在磁碟上,而是頻繁的實時計算統計資訊 每次對錶的訪問都會重新計算其統計資訊 假...

統計分組的關鍵是什麼?怎樣正確選擇分組標誌

壤駟秀英六奕 分組標誌 就是將統計總體劃分為幾個性質不同部分的標準或依據。分組標誌是對總體進行分組的依據,分組標誌一經選定,必將突出總體單位在此標誌下的差異,而將總體單位在其它標誌下的差異掩蓋起來。因此,如何正確選擇分組標誌,就成為統計分組時的一個重要的問題。編輯本段分組標誌的選擇原則 分組標誌的選...

stata如何做分組描述性統計,STATA如何做分組描述性統計

hs霍先生 可以用tabstat命令。舉例說明 如按照變數a進行分組描述性統計 tabstat x1 x2 x3 statistics mean sd by a 如果想在此基礎上進一步按照b來進行分組描述,可以假如a取值1或者0,想看a為1的情況下按b分組的描述統計情況,可以加if選項的。如 tab...