⑴ 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中如何在一個表中對一個欄位進行統計
額,問題不太清楚。一般統計總的條目數是count(*),還有求平均的avg(),最大值max(),最小值min()等等。
舉個例子:
select count(*) from table where 某=某
結果顯示的是符合某=某條件的條數。
⑶ 用sql語句統計資料庫某個欄位中相同的數據有多少條
1、可通過分組和組內計數來實現,語句如下:
select a, count(*) from A Group by a
2、用Group By分組:
Group By + [分組欄位](可以有多個)。在執行了這個操作以後,數據集將根據分組欄位的值將一個數據集劃分成各個不同的小組。
這里,分組欄位是a,所以數據集分成了你、我、他三個組。然後用Count(*)分別按照各個組來統計各自的記錄數量。
3、Count(*)函數:
Count(*) 函數返回表中的記錄數。注意它和Group by連用,返回組內記錄數。
』
(3)sql統計一個表中欄位的對應的個數擴展閱讀:
select count(*)和select count(1)的區別
一般情況下,Select Count (*)和Select Count(1)兩著返回結果是一樣的。
假如表沒有主鍵(Primary key), 那麼count(1)比count(*)快。
如果有主鍵的話,那主鍵作為count的條件時候count(主鍵)最快。
如果你的表只有一個欄位的話那count(*)就是最快的。
count(*) 跟 count(1) 的結果一樣,都包括對NULL的統計,而count(column) 是不包括NULL的統計。
網路.Group by
⑷ 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怎麼統計個數
不同資料庫的系統表可能不一樣,比如informix就是systables
的
tabname。
informix資料庫:
統計個數:
select
count(*)
from
systables
where
tabname
like
'%abc%'
查看錶:
select
tabname
from
systables
where
tabname
like
'%abc%'
其他資料庫的話,系統表可能是sysobjects,對應的列可能也有不同,看你的情況改吧。
⑹ sql中如何統計一欄位中字元串的個數
declare @s varchar(100)
set @s='156434A27kAsdABCiosd-01&**('
--找出現的次數
select len(@s)-len(replace(@s,'A',''))
SQL中字元串截取函數(SUBSTRING)
1、left(name,4)截取左邊的4個字元
列:
SELECT LEFT(201809,4) 年
結果:2018
2、right(name,2)截取右邊的2個字元
SELECT RIGHT(201809,2) 月份
結果:09
(6)sql統計一個表中欄位的對應的個數擴展閱讀
sql中group by用法:
GROUP BY可以先從字面上來理解,GROUP表示分組,BY後面寫欄位名,就表示根據哪個欄位進行分組,如果有用Excel比較多的話,GROUP BY比較類似Excel裡面的透視表。
GROUP BY必須得配合聚合函數來用,分組之後可以計數(COUNT),求和(SUM),求平均數(AVG)等。
常用聚合函數:count()計數、sum()求和、avg()平均數、max()最大值、min()最小值。
SELECT 語句指定了兩列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一個單獨的值("OrderPrice" 列的總計),而 "Customer" 返回 6 個值(每個值對應 "Orders" 表中的每一行)。因此,我們得不到正確的結果。不過,您已經看到了,GROUP BY 語句解決了這個問題。
⑺ 怎麼通過一個sql語句查詢一個表中欄位的個數
select
a.name
,count(0)欄位總數
from
sys.objectsa
innerjoinsys.all_columnsbona.object_id=b.object_id
where
a.type='U'anda.name='表名'
groupby
a.name
修改逗表名地為實際需要查詢的表名即可
⑻ 怎麼通過一個sql語句查詢一個表中欄位的個數
select
a.name
,count(0) 欄位總數
from
sys.objects a
inner join sys.all_columns b on a.object_id=b.object_id
where
a.type='U' and a.name='表名'
group by
a.name
修改逗表名地為實際需要查詢的表名即可
⑼ 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語句查詢一個表中欄位的個數
select
a.name
,count(0)欄位總數
from
sys.objectsa
innerjoinsys.all_columnsbona.object_id=b.object_id
where
a.type='U'anda.name='表名'
groupby
a.name
修改「表名」為實際需要查詢的表名即可