第一種情況:橫向顯示
先看下面的乙個資料表:
現在的需求是:統計出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.充值...