亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在SQL中對同一個字段不同值進行數據統計

發布時間:2020-10-27 15:07:11 來源:億速云 閱讀:1721 作者:Leah 欄目:開發技術

本篇文章為大家展示了如何在SQL中對同一個字段不同值進行數據統計,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

應用場景: 需要根據印章的不同狀態,統計不同狀態下印章數量。

select b.corporateOrgName, b.corporateOrgGuid companyId,
count(case when bc.ftype not in(1,2) then 1 else 0 end ) total,
count(case when bc.ftype in(3,4,5) then 1 else 0 end ) usetotal,
count(case when bc.ftype = 6 then 1 else 0 end ) saveTotal,
count(case when bc.ftype = 7 then 1 else 0 end ) returnTotal
from B_seal_cycle bc
join B_seal b
on bc.sealId = b.id
where b.corporateOrgName like '%%'
group by b.corporateOrgName,b.corporateOrgGuid

邏輯上通了,可就是怎么都得不到理想的接口,這樣寫統計的每一個數據都一樣呀。改變之后的正確寫法

select b.corporateOrgName, b.corporateOrgGuid companyId,
count(case when bc.ftype not in(1,2) then 1 end ) total,
count(case when bc.ftype in(3,4,5) then 1 end ) usetotal,
count(case when bc.ftype = 6 then 1 end ) saveTotal,
count(case when bc.ftype = 7 then 1 end ) returnTotal
from B_seal_cycle bc
join B_seal b
on bc.sealId = b.id
where b.corporateOrgName like '%%'
group by b.corporateOrgName,b.corporateOrgGuid

你看出不同之處了嘛? 把else 0 去掉就得到了正確的結果。

遇到的問題

1、 對case when 語法,解讀有誤。

加了else 之后,總會對結果取 1 或 0.

2、 count函數都會對不管1 或 0 進行統計。

3、 當加了else 0 之后,可以通過sum函數進行統計。

也可以這樣寫

select b.corporateOrgName, b.corporateOrgGuid companyId,
sum(case when bc.ftype not in(1,2) then 1 else 0 end ) total,
sum(case when bc.ftype in(3,4,5) then 1 else 0 end ) usetotal,
sum(case when bc.ftype = 6 then 1 else 0 end ) saveTotal,
sum(case when bc.ftype = 7 then 1 else 0 end ) returnTotal
from B_seal_cycle bc
join B_seal b
on bc.sealId = b.id
where b.corporateOrgName like '%%'
group by b.corporateOrgName,b.corporateOrgGuid

有問題,或者有更好的寫法,感謝留言指出。

補充知識:SQL語言中 執行語句 DESC與DESCRIBE有什么區別?

DESCRIBE TABLE 用于列出指定表或視圖中的所有列。

DESCRIBE INDEX FOR TABLE 用于列出指定表的所有索引,

所以 DESCRIBE是用來顯示數據結構信息的;

而desc是descend ,是用于查詢出結果時候對結果進行排序,是降序排序。

DESCRIBE 是 SHOW COLUMNS FROM 的縮寫。

DESCRIBE 提供有關一個表的列信息。col_name 可以是一個列名或是一個包含 SQL 通配符字符 “%” 和 “_” 的字符串。沒有必要用引號包圍字符串。

一、describe命令用于查看特定表的詳細設計信息

例如為了查看guestbook表的設計信息,可用:

describe guestbook describe ol_user userid

二、可通過”show comnus”來查看數據庫中表的列名

有兩種使用方式:

show columns form 表名 from 數據庫名

或者:

show columns from 數據庫名.表名

三、用describe命令查詢具體列的信息

describe guestbook id 就是查詢guestbook中id字段的列信息

{DESCRIBE | 
DESC
} tbl_name [col_name | wild]

DESCRIBE 是 SHOW COLUMNS FROM 的縮寫。

DESCRIBE 提供有關一個表的列信息。col_name 可以是一個列名或是一個包含 SQL 通配符字符 “%” 和 “_” 的字符串。沒有必要用引號包圍字符串。

mysql> 
desc
ol_user username\G

四、判斷字段是否存在

mysql_connect(
'localhost'  
,   
'root'  
,   
'root'   
);
   
mysql_select_db(   
'demo'   
); 
$test = mysql_query(
'Describe cdb_posts first'
); 
$test = mysql_fetch_array($test);

$test[0]返回的是該字段的名稱,比如我要查詢first字段,返回的就是first

如果此字段不存在返回的就是NULL,通過這樣可以判斷一個字段是否存在

上述內容就是如何在SQL中對同一個字段不同值進行數據統計,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余姚市| 呼伦贝尔市| 延寿县| 青河县| 芜湖市| 西乌珠穆沁旗| 江山市| 辉南县| 亚东县| 柳江县| 定南县| 米脂县| 安徽省| 来宾市| 葫芦岛市| 陆河县| 湟中县| 达尔| 余姚市| 宁乡县| 大英县| 榆林市| 大埔区| 库尔勒市| 股票| 呼和浩特市| 烟台市| 高淳县| 大连市| 宣化县| 牟定县| 兰考县| 本溪市| 当雄县| 濉溪县| 富裕县| 务川| 胶南市| 河曲县| 麦盖提县| 江陵县|