1. sql 查詢怎麼統計多個欄位各自的個數
--所有算的地方都用cast(個數asint)
createtabletest05
(avarchar(10),
bvarchar(10),
cvarchar(10))
insertintotest05select'#','一','三'unionall
select'@','一','三'unionall
select'¥','一','二'unionall
select'%','二','二'
select*fromtest05
selectb,COUNT(b)個數fromtest05groupbyb
selectc,COUNT(c)個數fromtest05groupbyc
selectSUM(isnull(t1.個數,0)+isnull(t2.個數,0))總數,sum(isnull(t1.個數,0))個數,t1.b,sum(isnull(t2.個數,0))個數,t2.cfrom
(selectb,COUNT(b)個數fromtest05groupbyb)ast1fulljoin
(selectc,COUNT(c)個數fromtest05groupbyc)ast2ont1.b=t2.c
groupbyt1.b,t2.c
2. mysql一條sql怎麼統計某個欄位不同值的個數
以時間為跨度統計不同的值,在該時間出現的次數。
3. 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
樓上的應該改改吧
4. sql語句統計數量 統計一個欄位出現的數量
1、創建測試表,
create table test_stu(id number, u_name varchar2(20), subject varchar2(20));
create table test_subj(id number, subject varchar2(20));
5. 如何統計SQL中某欄位總數和符合某條件的數量
select
名稱
,count(*)
as
總數量
,count(case
when
類型='a'
then
類型
else
null
end)
as
類型為a的數
from
表名
group
by
名稱
6. sql中按不同欄位統計數量的查詢語句,要求在一個時間段中
//thinkphp5.1查詢7天內每天的金額總數
$dates=[];
for($i=7;$i>=0;$i--){//近7天日期
$dates[]=date('Y-m-d',strtotime('-'.$i.'days'));
}
$where="whereunix_timestamp(time)>=unix_timestamp('".$dates[0]."')";
$order="groupbydate_format(time,'%Y-%m-%d')";
$select="selectdate_format(time,'%Y-%m-%d')astime,sum(money)ascountfromczjl";
$sql=$select.$where.$order;
$orderList=Db::query($sql);
mp($orderList);
你可以參考下
7. sql 統計人數
select count(stu_id) from student where subject in{『英語』,『政治』,『數學』,『計算機』,『C語言編程'}
上述SQL語句為查詢科目為這五門課的學生總數,如果用count(*),可能沒有剔除重復記錄,所以用count(stu_id)
select subject, count(stu_id) from student where subject in{『英語』,『政治』,『數學』,『計算機』,『C語言編程'} group by subject
分別查詢上述五門科目,每門科目的學生總數,返回的是這樣的數據對(pair):(英語,50) (政治, 45)……
select distinct name from student where subject in{『英語』,『政治』,『數學』,『計算機』,『C語言編程'}
查詢選擇上述五門課的所有學生名字,必須加上關鍵詞distinct,以除去重復的名字(比如同一個學生可以同時選上述五門課)
select subject, distinct name from student where subject in {『英語』,『政治』,『數學』,『計算機』,『C語言編程'}group by subject
分別查詢上述五門科目各科的學生名字,返回結果為(科目,學該科目的學生名字)
8. 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欄個數.
這個結果跟欄位是否為整型無關, 它是統計記錄出現的次數.
9. 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的寫法會比較有局限性