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

sql數量

發布時間: 2022-01-15 03:08:49

sql統計多個欄位值數量

分兩步實現

  1. 按月匯總

  2. 行列轉換

    請試一下,如有疑問,及時溝通!

  3. ----生成相應的技巧性文章
    createtable#maomao365
    (
    [姓名]nvarchar(30),
    [班級]nvarchar(20),
    [分數]int,
    [考試時間]date
    )
    go

    insertinto#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@sqlvarchar(max)
    set@sql='select*from
    (select[班級],
    [分數],month([考試時間])asmonthfrom#maomao365)asd
    pivot(sum([分數])for[month]
    in(
    ';/*動態組合列名*/
    declare@lieMingvarchar(7000)---定義動態生成列名存放變數
    declare@iint,@imaxint,@fieldvarchar(60)---定義臨時循環變數
    declare@fieldListtable(keyIdintidentity,fieldvarchar(60))---定義臨時表,存放待生成動態列名的數據
    insertinto@fieldList(field)selectdistinctmonth([考試時間])from#maomao365---生成列名數據

    -------------循環表生成列名start--------------
    set@lieMing=''
    set@i=1
    select@imax=max(keyId)from@fieldListt
    while@i<@imax
    begin
    select@[email protected]=@i
    ifisnull(@field,'')!=''
    begin
    if@lieMing!=''beginset@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
    truncatetable#maomao365
    droptable#maomao365
    go

② SQL 統計數量

--表A和表B分開來統計,最後合並兩個統計結果
時間在一個范圍內用 時間A between '時間1' and '時間2'
由於不是很明白你的分組統計原則,所以group by語句暫時無法提供建議

③ sql如何查出總數量的最大數

select top 1 cName , sum(iQuantity) as 總數量 from table1 group by cName order by 總數量 desc

④ sql 統計數量

select 學生表.學號, 選課數 into 選課數統計表 from 學生表 left join (select 學號, count(*) as 選課數 from 學生選課表 group by 學號) tmbdb on 學生表.學號=tmpdb.學號

⑤ Sql統計數量

select
學號,
count(1)
as
學生選課數
from
學生選課表
group
by
學號
一張表足以,根本不需要學生表,除非要顯示學生姓名。
count函數是計算按照學號分組之後的行數,也就是一行是選了一門。
放到一張表裡,如果是建好的表,那麼
insert
into

select
學號,
count(1)
as
學生選課數
from
學生選課表
group
by
學號

⑥ 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 a,b,c,d拆分為4列:
1 a
1 b
1 c
1 d
然後對臨時表進行統計
select pro,count(1) from tb group by pro

這是最好的辦法

⑧ sql統計數量

select 部門名稱,count(id) as '員工人數 ' from A inner join B on B.a_id=A.id

⑨ sql求總數

可以通過如下方式來實現
如select dptno,dptname,workcot,(select count(*) from ba_employeeinfo b where b.dptno1 = a.dptno and b.empflg=0) as 人數 from ba_dptinfo a

⑩ SQL怎麼統計個數

方法一:

SELECT SUM(正確數)+SUM(錯誤數) AS 總記錄數,SUM(正確數),SUM(錯誤數)
FROM (
SELECT COUNT(1) 正確數,0 錯誤數
FROM TB
WHERE STATUS=1
UNION ALL
SELECT 0 正確數,COUNT(1) 錯誤數
FROM TB
WHERE STATUS=0) a

方法二:

select count(1)總記錄數,sum(case when status=1 then 1 else 0 end)正確數,sum(case when status=0 then 1 else 0 end) 錯誤數 from T