SQL語句計算男女員工各佔比例

2021-06-26 18:55:40 字數 1429 閱讀 4515

1樓:

假設表員工檔案裡有性別、姓名兩個欄位

select count(*) as 員工總數,sum(case when 性別=男 then 1 else 0 end) 男員工數,sum(case when 性別=男 then 1 else 0 end)/nullif(count(*),0) 男所佔比例,sum(case when 性別=女 then 1 else 0 end) 女員工數,sum(case when 性別=女 then 1 else 0 end) /nullif(count(*),0)女所佔比例

from 員工檔案

你自己試試看吧

樓上的寫的不錯,但是最好注意一些除0問題,要是張空表會報除0錯誤的。

2樓:

表infor

姓名 性別 id 工資 ****等等性別列為in*** 含check 約束('男' or '女')那麼查詢為

select count(in***) as 員工總數, sum(decode(in***,'男',1,'女',0)) as 男員工數,sum(decode(in***,'男',1,'女',0))/count(in***) as 男所佔比例,sum(decode(in***,'男',0,'女',1)) as 女員工數,

sum(decode(in***,'男',0,'女',1))/count(in***) as 女所佔比例

from infor;

3樓:匿名使用者

declare @tmp table (xb int,cnt int)

insert into @tmp

select xb,count(*) from 員工檔案group by xb

declare @sum int;

select @sum=sum(cnt) from @tmpselect @sum sums,a.cnt mens,a.bl mensbl,b.

cnt womens,b.bl womensbl

from

(select cnt,cnt*100.0/@sum bl from @tmp where xb='男') a,

(select cnt,cnt*100.0/@sum bl from @tmp where xb='女') b

用sql語句統計每個系的男生人數和女生人數,結果按照人數多寡降序。

4樓:匿名使用者

select 系別,性別,count(*) 人數 from table group by 系別,性別 order by 人數 desc

5樓:靈魂歌者萌小奇

select count(*),dept,*** from student group by dept,*** order by count(*) desc

SQL語句問題,SQL語句問題

樓主在資料結構有問題,帳號相同是可以的,但其實兩者在關係並不是單單是帳號在關係,還有工號之間有關係,所以你的結構有點點問題,既然工號之間也是有關係的,那麼也應該提取出來,所以你的b表應該儲存為 三個欄位 賬號 收銀員 營業員 儲存內容 賬號 收銀員id 營業員id 那麼你想要的結果就很清晰了 sel...

Sql語句的TOP用法,sql查詢語句 top n的用法

select top 1 from table select top 1 2 from table 取前3行資料 區別就是 裡面可以是個表示式 沒有區別個人的習慣 在sqlserver2000中top後只可以跟常數,在2005後可以跟變數了 也許唯一的區別就是top expression 括號中可以...

SQL語句糾錯,這條sql語句哪裡錯了

你要把表結構,錯誤資訊,是什麼資料庫,在什麼地方用,都應該寫出來才能找出來呀。光看你這句話,只能猜到可能有以下原因的錯誤 1 使用了 top 16,如果是 sybase 資料庫是不支援 top 的,應該在末尾使用 set rowcount n 來取記錄條數 n 0表示所有 2 lock false ...