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 是最流行的關係型資料庫管理系統之一。可以比喻為一個有序管理的超級大倉庫

SQL分組統計且跨表查詢

select table2.t name,sum table1.s total from table1,table2 where table1.s date like 2013 02 group by table2.t name select table2.t id,sum table1.s tot...

高分懸賞mysql多表查詢,並統計的問題

select nameid,name,count namecount from select a.nameid,a.name,locate concat a.name,concat b.name,from table1 a table2 b where locate concat a.name,co...

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

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