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統計數量,sql語句統計數量,統計一個欄位的值的數量
表a和表b分開來統計,最後合併兩個統計結果 時間在一個範圍內用 時間a between 時間1 and 時間2 由於不是很明白你的分組統計原則,所以group by語句暫時無法提供建議 肯定是一樣的,因為count 欄位 不是說這個欄位又多少個,而是記錄的條數,即行數,他和count 效果是一樣的。...
sql server一對多統計數量
資料我這裡叫a,b,c了,跟你表1,2,3是對應的 create table a uid int,name varchar 10 insert into a values 1,張一 insert into a values 2,張二 create table b uid int,type1 varc...
如何用excel篩選後統計數量,excel表格篩選後如何統計行數
特特拉姆咯哦 1 首先我們需要開啟excel 做一個月份扣款表。2 產品合計的話,輸入 subtotal 9,e2 e14 9為sum,按回車得到結果 3 這時候對月份進行篩選,例如2月份時在單元格區域顯示的統計值這時候對篩選結果的統計,而不是對全部資料的統計。 懶獅教育 excel必備技巧,快速篩...