日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常用的数据统计Sql 总结

發布時間:2023/12/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常用的数据统计Sql 总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近剛在搞一個BI的項目,里面需要大量的sql 數據統計相關運用,加深了我又對SQL的理解與使用。

?

所以,分享幾個數據統計時常用的sql 語句總結:?

?

1. 統計各個條件下的數據


select BatchId,sum(CardSum) 總金額, sum(case when Status=1 then CardSum else 0 end) as 已使用, sum(case when Status=2 then CardSum else 0 end) as 已凍結 from GiftCard group by BatchId

?

2. 統計每日,每月,每年的數據


select year(AddTime) 年,month(AddTime) 月,day(AddTime) 日,COUNT(1) 數量,sum(CardSum) 銷售合計 from GiftCard group by year(AddTime),month(AddTime),day(AddTime)

?

3. 某列去重統計


select COUNT(BatchId),COUNT(distinct BatchId),COUNT(distinct BatchName) from GiftCard

?

4. 行轉列

SELECT * FROM (SELECT BatchName, CardSum as TotAmount FROM GiftCard) as s PIVOT ( SUM(TotAmount)FOR BatchName IN (zx測試商品, test新人優惠券,測試高考大放送) )AS MyPivot

?

5. 得到表中最小的未使用的ID號


SELECT (CASE WHEN EXISTS(SELECT * FROM GiftCard b WHERE b.Id = 1) THEN MIN(Id) + 1 ELSE 1 END) as Id FROM GiftCardWHERE NOT Id IN (SELECT a.Id - 1 FROM GiftCard a)

?

6. 查詢某一列數據不重復的數量


select *
from GiftCard a
where not exists(select 1 from GiftCard where BatchName=a.BatchName and ID<a.ID)

?

7.?按年統計1月到12個月的銷量


select year(AddTime) as '', SUM(case when MONTH(AddTime)=1 then CardSum else 0 end ) as '一月', SUM(case when MONTH(AddTime)=2 then CardSum else 0 end ) as '二月', SUM(case when MONTH(AddTime)=3 then CardSum else 0 end ) as '三月', SUM(case when MONTH(AddTime)=4 then CardSum else 0 end ) as '四月', SUM(case when MONTH(AddTime)=5 then CardSum else 0 end ) as '五月', SUM(case when MONTH(AddTime)=6 then CardSum else 0 end ) as '六月', SUM(case when MONTH(AddTime)=7 then CardSum else 0 end ) as '七月', SUM(case when MONTH(AddTime)=8 then CardSum else 0 end ) as '八月', SUM(case when MONTH(AddTime)=9 then CardSum else 0 end ) as '九月', SUM(case when MONTH(AddTime)=10 then CardSum else 0 end ) as '十月', SUM(case when MONTH(AddTime)=11 then CardSum else 0 end ) as '十一月', SUM(case when MONTH(AddTime)=12 then CardSum else 0 end ) as '十二月'from GiftCardgroup by year(AddTime)

?



作者:章為忠?
出處:http://www.fpeach.com/?
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。如有問題,可以微信:18618243664?聯系我,非常感謝。?

掃下面的二維碼關注我的微信公眾號。?

總結

以上是生活随笔為你收集整理的常用的数据统计Sql 总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。