當前位置:首頁 » 編程語言 » sql統計顯示欄位
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql統計顯示欄位

發布時間: 2022-08-19 11:24:49

sql統計某一表的某欄位的總值(sum)

group
by
後面跟的欄位必須是Select後面不是聚合函數的欄位,少一個都不行。select後面不是聚合函數的欄位都是分組依據(幾個欄位同時相等才會分在一組里統計)
下面這句是按帳戶分組統計(帳戶一樣的消費金額相加):
select
賬戶,sum(消費金額)
as
總金額

from

group
by
賬戶
而你給的代碼是按你N個欄位統計,結果肯定不對。
若還想顯示其他欄位,用下面的語句:
select
x.賬戶,消費日期...(你的其他欄位),總金額
from

x,(select
帳戶,sum(消費金額)as
總金額
from

group
by
賬戶)
as
y
where
x.帳戶=y.帳戶

❷ 如何統計SQL中某欄位總數和符合某條件的數量

輸入代碼

select 名稱
,count(*) as 總數量
,count(case when 類型='A' then 類型 else null end) as 類型為A的數
from 表名
group by 名稱。

就可以統計SQL中某欄位總數和符合某條件的數量。

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

1、創建測試表,

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

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

❹ sql查詢語句按條件統計欄位值並在一個表中多列顯示

這個sql可以通過將初始查詢結果集用括弧括起來當作一個子查詢(也可以稱之為虛擬表),然後再對其實施進一步篩選從而獲得另一個結果集的辦法予以實現。
例如列出各科平均分在80到90分的同學姓名和各科平均分
select stu.name,t.平均分 from stu,
(select sid,avg(score) as 平均分 from scores group by sid)t
where stu.sid=t.sid and t.平均分 between 80 and 90;
事實上Sql可以通過這種方法實現多重子查詢篩選、嵌套和連接非常方便。

❺ SQL中如何在一個表中對一個欄位進行統計

額,問題不太清楚。一般統計總的條目數是count(*),還有求平均的avg(),最大值max(),最小值min()等等。
舉個例子:
select count(*) from table where 某=某
結果顯示的是符合某=某條件的條數。

❻ sql里怎樣統計一個欄位中某個字元出現的個數

題目意思沒明確。
假設查找的字元為「Z」
1、如果是一個欄位中
某個字元出現的行數
select
count(1)
from
表名
where
欄位名
like
'%Z%'
2、每個值裡面Z的數量
select
len(欄位名)-len(replace(欄位名,'Z',''))
AS
Z的數量
from
表名
3、查找表裡面該欄位包含的所有Z的數量
select
SUM(len(欄位名)-len(replace(欄位名,'Z','')))
AS
Z的數量
from
表名
where
欄位名
like
'%Z%'

❼ 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.val

SQLSerer上的測試結果(欄位次序有變化),

total_cnt為總數, b_label為b欄值, b_cnt為b欄個數, c_labe為c欄值, c_cnt為c欄個數.

這個結果跟欄位是否為整型無關, 它是統計記錄出現的次數.

❽ 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

❾ 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的寫法會比較有局限性