亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在SQL中對同一個字段不同值,進(jìn)行數(shù)據(jù)統(tǒng)計操作

 更新時間:2020年10月20日 11:27:31   作者:taojin12  
這篇文章主要介紹了在SQL中對同一個字段不同值,進(jìn)行數(shù)據(jù)統(tǒng)計操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

應(yīng)用場景: 需要根據(jù)印章的不同狀態(tài),統(tǒng)計不同狀態(tài)下印章數(shù)量。

剛開始百度,確實寫搜到了不同的答案,但只能怪自己對sql語法解讀不夠,還是沒寫出來,導(dǎo)致寫出了下面錯誤的寫法。

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

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

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 去掉就得到了正確的結(jié)果。

遇到的問題

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

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

2、 count函數(shù)都會對不管1 或 0 進(jìn)行統(tǒng)計。

3、 當(dāng)加了else 0 之后,可以通過sum函數(shù)進(jìn)行統(tǒng)計。

也可以這樣寫

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

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

補(bǔ)充知識:SQL語言中 執(zhí)行語句 DESC與DESCRIBE有什么區(qū)別?

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

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

所以 DESCRIBE是用來顯示數(shù)據(jù)結(jié)構(gòu)信息的;

而desc是descend ,是用于查詢出結(jié)果時候?qū)Y(jié)果進(jìn)行排序,是降序排序。

DESCRIBE 是 SHOW COLUMNS FROM 的縮寫。

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

一、describe命令用于查看特定表的詳細(xì)設(shè)計信息

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

describe guestbook describe ol_user userid

二、可通過”show comnus”來查看數(shù)據(jù)庫中表的列名

有兩種使用方式:

show columns form 表名 from 數(shù)據(jù)庫名

或者:

show columns from 數(shù)據(jù)庫名.表名

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

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

{DESCRIBE | 
DESC
} tbl_name [col_name | wild]

DESCRIBE 是 SHOW COLUMNS FROM 的縮寫。

DESCRIBE 提供有關(guān)一個表的列信息。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中對同一個字段不同值,進(jìn)行數(shù)據(jù)統(tǒng)計操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL UDF調(diào)試方式debugview的相關(guān)方法

    MySQL UDF調(diào)試方式debugview的相關(guān)方法

    MySQL UDF調(diào)試方式debugview的相關(guān)方法...
    2007-07-07
  • Windows7下Python3.4使用MySQL數(shù)據(jù)庫

    Windows7下Python3.4使用MySQL數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了Windows7下Python3.4使用MySQL數(shù)據(jù)庫,MySQL Community Server的安裝步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 如何查看自己電腦MySQL是否安裝成功

    如何查看自己電腦MySQL是否安裝成功

    執(zhí)行mysql程序后我們需要對mysql數(shù)據(jù)庫進(jìn)行驗證,檢查其是否安裝成功,這篇文章主要給大家介紹了關(guān)于如何查看自己電腦MySQL是否安裝成功的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • centos7下安裝mysql6初始化安裝密碼的方法

    centos7下安裝mysql6初始化安裝密碼的方法

    這篇文章主要介紹了centos7下安裝mysql6初始化安裝密碼的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • MySQL開啟Slow慢查詢的方法示例

    MySQL開啟Slow慢查詢的方法示例

    這篇文章主要給大家介紹了關(guān)于MySQL開啟Slow慢查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 區(qū)別于Oracle的MySQL?insert會阻塞update

    區(qū)別于Oracle的MySQL?insert會阻塞update

    這篇文章主要介紹了區(qū)別于Oracle的MySQL?insert會阻塞update的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • MySQL 最基本的SQL語法/語句

    MySQL 最基本的SQL語法/語句

    MySQL 最基本的SQL語法/語句,使用mysql的朋友可以參考下。
    2011-09-09
  • mysql中獲取一天、一周、一月時間數(shù)據(jù)的各種sql語句寫法

    mysql中獲取一天、一周、一月時間數(shù)據(jù)的各種sql語句寫法

    今天抽時間整理了一篇mysql中與天、周、月有關(guān)的時間數(shù)據(jù)的sql語句的各種寫法,部分是收集資料,全部手工整理,自己學(xué)習(xí)的同時,分享給大家,并首先默認(rèn)創(chuàng)建一個表、插入2條數(shù)據(jù),便于部分?jǐn)?shù)據(jù)的測試,其中部分名詞或函數(shù)進(jìn)行了解釋說明。直入主題
    2014-05-05
  • MySQL中字段名和保留字沖突的解決辦法

    MySQL中字段名和保留字沖突的解決辦法

    這篇文章主要介紹了MySQL中字段名和保留字沖突的解決辦法,其實只需要用撇號把字段名括起來就可以了,這樣在select、insert、update、delete語句中都不會有問題,需要的朋友可以參考下
    2014-06-06
  • mysql在項目中怎么選事務(wù)隔離級別

    mysql在項目中怎么選事務(wù)隔離級別

    Mysql默認(rèn)的事務(wù)隔離級別是可重復(fù)讀,那互聯(lián)網(wǎng)項目中Mysql也是用默認(rèn)隔離級別,但在項目中呢,下面我們就一起來了解一下
    2021-05-05

最新評論