sql欄位數量
❶ sql查詢欄位數量
select COUNT(a.name) from sys.all_columns a,sys.tables b
where a.object_id=b.object_id and b.name='table_name'
❷ sql如何進行多個欄位的統計個數
一種查詢SQL如下, 利用union獲得b和c各自的統計結果, 然後再一次統計整合到最終結果:
selectsum(d.b_cnt)+sum(d.c_cnt)astotal_cnt,sum(d.b_cnt)asb_cnt,casewhensum(d.b_cnt)=0then''elsed.valendasb_label,sum(d.c_cnt)asc_cnt,casewhensum(d.c_cnt)=0then''elsed.valendasc_labelfrom(selectbasval,count(b)asb_cnt,0asc_,0,count(c)asc_cntfromAgroupbyc)dgroupbyd.valSQLSerer上的測試結果(欄位次序有變化),
total_cnt為總數, b_label為b欄值, b_cnt為b欄個數, c_labe為c欄值, c_cnt為c欄個數.
這個結果跟欄位是否為整型無關, 它是統計記錄出現的次數.
❸ sql語句統計數量,統計一個欄位的值的數量
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
樓上的應該改改吧
❹ sql統計多個欄位值數量
分兩步實現
1.
按月匯總
2.
行列轉換
請試一下,如有疑問,及時溝通!
3.
----生成相應的技巧性文章
create table #maomao365
(
[姓名] nvarchar(30),
[班級] nvarchar(20),
[分數] int,
[考試時間] date
)
go
insert into #maomao365 (
[姓名],[班級],
[分數],[考試時間]
)values
('張三','一班',89,'2019-1-1'),
('李四','二班',100,'2019-1-1'),
('王二','三班',60,'2019-1-1'),
('馬子','四班',70,'2019-1-1'),
('maomao','一班',89,'2019-1-1'),
('小屋','二班',15,'2019-2-1'),
('sql','三班',69,'2019-2-1'),
('教程','四班',72,'2019-2-1'),
('宇宙','一班',63,'2019-3-1'),
('周貓貓','一班',50,'2019-4-1'),
('宙斯盾','二班',23,'2019-5-1'),
('潛水艇','三班',21,'2019-6-1'),
('其它','四班',20,'2019-7-1')
go
/*拼接字元串*/
declare @sql varchar(max)
set @sql =' select * from
(select [班級],
[分數],month([考試時間]) as month from #maomao365) as d
pivot(sum([分數]) for [month]
in(
';
/*動態組合列名*/
declare @lieMing varchar(7000) ---定義動態生成列名存放變數
declare @i int ,@imax int,@field varchar(60) ---定義臨時循環變數
declare @fieldList table(keyId int identity,field varchar(60)) ---定義臨時表,存放待生成動態列名的數據
insert into @fieldList(field) select distinct month([考試時間]) from #maomao365 ---生成列名數據
-------------循環表生成列名start--------------
set @lieMing =''
set @i=1
select @imax =max(keyId) from @fieldList t
while @i <@imax
begin
select @field =field from @fieldList t where t.keyId=@i
if isnull(@field,'') !=''
begin
if @lieMing !='' begin set @lieMing =@lieMing +',' end
set @lieMing = @lieMing+'['+@field+']';
end
set @i=@i+1
end
-------------循環表生成列名end--------------
/*動態組合列*/
set @sql =@sql +@lieMing +' )) t ;'; ---拼接sql語句
print (@sql)
exec (@sql)
go
truncate table #maomao365
drop table #maomao365
go
❺ SQL 統計數量
--表A和表B分開來統計,最後合並兩個統計結果
時間在一個范圍內用 時間A between '時間1' and '時間2'
由於不是很明白你的分組統計原則,所以group by語句暫時無法提供建議
❻ sql 如何查詢欄位的個數
set rs=server.createobject("adodb.recordset")sql="select * from 表名"rs.open sql,conn,1,1'開始賦值FieldCount=rs.fields.count
❼ sql中怎麼統計一個欄位的數量
sqlserver為例
創建表及插入數據
create table 姓名表(id int,u_name varchar(10),subject varchar(10))create table 科目表(id int,s_name varchar(10))insert into 姓名表 values (1,'張三','英語')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_subjectasselect a.s_name,SUM(case when a.s_name=b.subject then 1 else 0 end) countsfrom 科目表 a left join 姓名表 b on a.s_name=b.subjectgroup 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 aselect @sql = @sql+' from [v_subject]'exec (@sql)結果截圖
你結果里為什麼會少呢?
這個主要是動態顯示才這么復雜,比如你在科目表裡再加個阿拉伯語,用這個也沒問題,否則用case when的寫法會比較有局限性
❽ sql 查詢某一欄位值的個數
select欄位1,count(欄位2)個數
fromtabname
groupby欄位1
❾ 如何計算SQL其中一個欄位的數據個數
select count(*) from table where 某欄位='內容'
以上,希望對你有所幫助
❿ sql語句統計數量 統計一個欄位出現的數量
1、創建測試表,
create table test_stu(id number, u_name varchar2(20), subject varchar2(20));
create table test_subj(id number, subject varchar2(20));