sql語句統計數量,統計欄位的值的數量

2021-06-26 19:05:17 字數 4908 閱讀 1843

1樓:我tm不管

select type,count(*) as 總數量,sum(case when level='一級' then 1 else 0 end) as 一級,

sum(case when level='二級' then 1 else 0 end) as 二級,

sum(case when level='**' then 1 else 0 end) as **

from table group by type樓上的應該改改吧

2樓:

pivot

--sql server 2000 靜態sqlselect type as type ,

max(case level when '一級' then id else 0 end) 一級,

max(case level when '二級' then id else 0 end) 二級,

max(case level when '**' then id else 0 end) **,

count(id) 總數量

from tb

group by type

然後再彙總,或者可以寫個檢視就ok了

--sql server 2000 動態sql

declare @sql varchar(8000)

set @sql = 'select type '

select @sql = @sql + ' , max(case level when ''' + level + ''' then id else 0 end) [' + level + ']'

from (select distinct level from tb) as a

set @sql = @sql + ' from tb group by type'

exec(@sql)

--sql server 2005 靜態sql。

select * from (select * from tb) a pivot (max(id) for level in (一級,二級,**)) b

--sql server 2005 動態sql。

declare @sql varchar(8000)

select @sql = isnull(@sql + ',' , '') + level from tb group by level

exec ('select * from (select * from tb) a pivot (max(id) for level in (' + @sql + ')) b')

3樓:匿名使用者

select type,sum(*) as 總數量,sum(case when level='一級' then 1 else 0 end) as 一級,

sum(case when level='二級' then 1 else 0 end) as 二級,

sum(case when level='**' then 1 else 0 end) as **

from table group by type

4樓:匿名使用者

select type,count(1) from table group by type

union all

select level,count(1) from table group by level

用sql語句統計資料庫某個欄位中相同的資料有多少條?

5樓:幸運的

1、可通過分組和組內計數來實現,語句如下:

select a, count(*) from a group by a

2、用group by分組:

group by + [分組欄位](可以有多個)。在執行了這個操作以後,資料集將根據分組欄位的值將一個資料集劃分成各個不同的小組。

這裡,分組欄位是a,所以資料集分成了你、我、他三個組。然後用count(*)分別按照各個組來統計各自的記錄數量。

3、count(*)函式:

count(*) 函式返回表中的記錄數。注意它和group by連用,返回組內記錄數。

6樓:匿名使用者

select a,count(*) from 表a group by a

7樓:匿名使用者

select a, count(a) from a

group by a

8樓:大瑞瑞卡哇伊

select b,count(*) from a s join b sf on a.a_id = sf.b_id group by a_id;

sql語句統計數量 統計一個欄位出現的數量

9樓:匿名使用者

1、建立測試表,62616964757a686964616fe78988e69d8331333431373863

create table test_stu(id number,  u_name varchar2(20), subject varchar2(20));

create table test_subj(id number,  subject varchar2(20));

2、插入測試資料

insert into test_stu values(1,'張三','英語');

insert into test_stu values(2,'李四','德語');

insert into test_stu values(3,'王五','日語');

insert into test_stu values(4,'小明','英語');

insert into test_stu values(5,'小狗','法語');

insert into test_subj values(1,'英語');

insert into test_subj values(2,'德語');

insert into test_subj values(3,'日語');

insert into test_subj values(4,'法語');

3、查詢表中所有記錄數,select t.*, rowid from test_subj t,

4、編寫sql,統計test_subj總記錄數,及每個科目選修學生數;

select count(distinct t.id) as "小計",

count(case when subject='英語' then 1 end) as "英語",

count(case when subject='德語' then 1 end) as "德語",

count(case when subject='日語' then 1 end) as "日語"

from (select t.*

from test_subj t, test_stu b

where t.subject = b.subject) t

10樓:匿名使用者

sqlserver為例

建立表及插入資料

create table 姓名錶

(id int,

u_name varchar(10),

subject varchar(10))

create table 科目表

(id int,

s_name varchar(10))

insert into 姓名錶 values (1,'張三','英語

62616964757a686964616fe59b9ee7ad9431333337373562')

insert into 姓名錶 values (2,'李四','德語')

insert into 姓名錶 values (3,'王五','日語')

insert into 姓名錶 values (4,'小明','英語')

insert into 姓名錶 values (5,'小狗','法語')

insert into 科目表 values (1,'英語')

insert into 科目表 values(2,'德語')

insert into 科目表 values(3,'日語')

insert into 科目表 values(4,'法語')

然後需要建立一個檢視

create view v_subject

asselect a.s_name,sum(case when a.s_name=b.subject then 1 else 0 end) counts

from 科目表 a left join 姓名錶 b on a.s_name=b.subject

group by a.s_name

執行語句

declare @sql varchar(4000)

set @sql = 'select sum(counts) as 合計'

select @sql = @sql + ',sum(isnull(case [s_name] when '''+[s_name]+''' then [counts] end,0)) as

['+[s_name]+']'

from (select distinct [s_name] from v_subject) as a

select @sql = @sql+' from [v_subject]'

exec (@sql)

結果截圖

你結果裡為什麼會少呢?

這個主要是動態顯示才這麼複雜,比如你在科目表裡再加個阿拉伯語,用這個也沒問題,否則用case when的寫法會比較有侷限性

11樓:2一瞬間

select subject,count(subject) from 姓名錶 group by subject order by id

sql語句怎麼統計欄位的出現的次數

select a.userpass a.userright count a.userpass a.userright from select from for deliver user where for deliver user.userid 你的引數 as a group by a.userpa...

sql語句查詢並統計查詢結果數量

可以通過count函式來實現。sqlone select from tablename1 where id 5 此語句查詢出來多條記錄,之後看做乙個新的表。sqltwo select conut from select from tablename1 where id 5 as tablename2...

excel統計數量公式,excel函式公式中,如何計算「個數」?

使用 sumif 公式並使用萬用字元 就可以了 例如 sumif a1 a100,王 c1 c100 姓名 工資 姓王的工資總和 張a 200 2200 王六 300 王四 600 王三 800 王一 500 趙五 400 在c3中輸入公式 sumif a2 a7,王 b2 b7 第一列公升序或者降...