SQL分組統計

2022-03-06 04:35:20 字數 2551 閱讀 7103

第一種情況:橫向顯示

先看下面的乙個資料表:

現在的需求是:統計出v_coun每一種取值情況下,對就的v_iseneded的數量。

oracle中的 sql**如下:

select v_count,sum(case

when v_isended=

1then

1else

0end) as

一的數量,

sum(case

when v_isended=

0then

1else

0end) as

零的數量

from

t_vote

group

by v_count

結果如下:

第二種情況:豎向顯示

表結構如下:

對應的列名意思為:員工工號、員工姓名、計件工資。上面只是一部分資料,總共的資料有七百多條

現在的需求是:對這些員工的計件工資進行分段統計,結果如下圖:

oracle中sql**如下所示:

select "分段統計(元)", count("分段統計(元)") as

"本月(人)"

from (select

(case

when pay_marketcount <

100then

cast('

100以下'as

varchar(10

))

else(case

when pay_marketcount <=

500then

cast('

100-500'as

varchar(10

))

else (case

when pay_marketcount <=

1000

then

cast('

501-1000'as

varchar(10

))

else (case

when pay_marketcount <=

1500

then

cast('

1001-1500'as

varchar(10

))

else (case

when pay_marketcount <=

2000

then

cast('

1501-2000'as

varchar(10

))

else (case

when pay_marketcount <=

2500

then

cast('

2001-2500'as

varchar(10

))

else (case

when pay_marketcount <=

3000

then

cast('

2501-3000'as

varchar(10

))

else (case

when pay_marketcount <=

4000

then

cast('

3001-4000'as

varchar(10

))

else (case

when pay_marketcount <=

5000

then

cast('

4001-5000'as

varchar(10

))

else (case

when pay_marketcount >

5000

then

cast('

5000以上'as

varchar(10

))

end) end) end) end) end) end) end) end) end) end) as

"分段統計(元)"

from

t_payment)

group

by "分段統計(元)"

SQL分組統計

全國各省份人口數排前三的城市 思路 先按照省份分組,再組內按照人口數排序取前三 mysql set num 0 class select from select p.num if class province,num 1 1 as rank,class p.province as pclass fr...

SQL語句 分組統計

一 教師號 星期號 是否有課 有 有 有 有 有 寫一條sql語句讓你變為這樣的表 教師號 星期一 星期二 星期三 各星期下的數字表示 對應的教師在星期幾已經排的課數 答案是 select 教師號 sum case when 星期號 1then 是否有課 else 0end as 星期一 sum c...

group by分組統計SQL語句

用一條查詢語句,查出各姓名的數值餘額.使用者表 姓名a bc 扣費表 姓名 數值 a 3.5 b 5.2 a 2.充值表 姓名 數值 b 10 a 10 a 10.5 返回 姓名 差額 充值和 扣費和 測試通過 select table1.tname,table1.telname,table3.充值...