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...