1. 程式人生 > >使用SQL語句統計資料時sum和count函式中使用if判斷條件

使用SQL語句統計資料時sum和count函式中使用if判斷條件

首先舉個栗子(不想看的話直接下面看總結):

order_type:訂單型別

open_id:使用者唯一標識

SELECT

        date(create_time) AS '當天日期',

        sum(real_price) AS '當天總收入',

sum函式中使用if判斷條件:{

sum(
IF (order_type = 0, real_price, 0)
) AS '當天支付收入',
sum(
IF (order_type = 1, real_price, 0)

) AS '當天打賞收入',

}

        count(DISTINCT open_id) AS '付費總人數',

count函式中使用if判斷條件:{

count(
DISTINCT open_id,
IF (order_type = 0, TRUE, NULL)
) AS '支付人數',
count(
DISTINCT open_id,
IF (order_type = 1, TRUE, NULL)

) AS '打賞人數',

}

        count(id) AS '付費訂單總數',

count函式中使用if判斷條件:{

count(
DISTINCT id,
IF (order_type = 0, TRUE, NULL)
) AS '支付訂單數',
count(
DISTINCT id,
IF (order_type = 1, TRUE, NULL)

) AS '打賞訂單數'

}

FROM
orders
WHERE
'real_price' != 1
AND 'status' != 0

GROUP BY DATE(create_time)

查詢結果:為了區分打賞訂單和支付訂單的資料統計,使資料更加清晰。

總結:

sum函式中使用if判斷條件格式為:sum(if(條件,列值,0))

註解:sum是求和函式,條件為真時,執行列值(欄位名)求和也就是累加,條件為假時為0求和(當然還是0)

1.單條件判斷格式,sum(if(條件欄位名=值,需要計算sum的欄位名,0))

2.多條件判斷格式,sum(if(條件欄位名>值 AND 條件欄位名>值 AND 條件欄位名=值,1,0))

註解:多條件判斷格式整體含義為,計算滿足條件的資料總數,如果滿足條件,那麼資料總數加1,所以1的含義為累加1

3.常見case when格式,sum(case when 條件欄位名 in (範圍較小值,範圍較大值) then [需要計算sum的欄位名] else 0 end)

count函式中使用if判斷條件格式為:

1.統計總數,count(if(條件欄位名=值,true,null))

2.統計總數去重複值,count(DISTINCT 需要計算count的欄位名,if(條件欄位名=值,true,null))

相關推薦

使用SQL語句統計資料sumcount函式使用if判斷條件

首先舉個栗子(不想看的話直接下面看總結): order_type:訂單型別 open_id:使用者唯一標識 SELECT         date(create_time) AS '當天日期',         sum(real_price) AS '當天總收入',

SQL語句case when外用sumcount的區別

如下這個表TEST: category | commdity | price ------------+------------+------- 衣服 | T恤 | 1000 辦公用品 | 打孔器 | 500 廚房用

SQL語句基礎1:建立刪除資料庫,建表,插入資料並加入適當約束

1.建立圖書管理資料庫 create database bookManager on (     name=bookManager_data,     filename='D:\SQL\bookManager_data.mdf',     size=5MB,     maxs

實際來總結sql裡面 sum count區別

用通俗的實際例子來說明問題 count()是算行數的,sum是求和的 比如說表mm: 小明 小紅 語文 50 80 數學 60 70 英語 70 90 如果算小明學了

SQL語句統計每天、每月、每年的資料

1、每年 select year(ordertime) 年, sum(Total) 銷售合計 from 訂單表 group by year(ordertime) 2、每月 select year(ordertime) 年, month(ordertime) 月, sum(

SQL語句統計每天、每月、每年的數據

微信 brush 所有 sha sharp sum har false 財務 1、每年 select year(add_time) 年,sum(income) 銷售合計 from 財務表 group by year(add_time) 2、每月

sql語句學習(NOT EXISTS NOT IN )

exist car rod cto from log del sele tinc NOT EXISTS SELECT   a.*FROM   t_user aWHERE   a.id_card LIKE ‘%3203821995100%‘AND NOT EXISTS ( S

mysql 操作sql語句 操作資料的內容/記錄

    #3. 操作檔案中的內容/記錄往哪張表去插入 insert into 表名指定欄位(id,name) 插入要加values(針對前面欄位插入)(2,mike);insert into t1(id,name) values(2,'mike'); insert into t1 v

SQL Serve 02(SQL語句操作資料)

1.SQL簡介: SQL是什麼? Structured Query Language:結構化查詢語言 為何要使用SQL? 難道僅僅使用SQL Server Management Studio操作資料庫? 應用程式如何與資料庫打交道? 何時使用? 對SQL Server執行所有的操作都可以

第三章————用SQL語句操作資料

第三章————用SQL語句操作資料 *********************新增**************************** 1. insert into 表名(列名1,列名2...) values(列1的值,列2的值...)   !!!注意: 1)字串型別,

MyBatis學習總結(六)---使用log4j2將sql語句執行記錄輸出控制檯檔案

  在上一篇部落格中我簡單的介紹了在MyBatis中如何使用日誌,並給出了一個在MyBatis中使用log4j的示例。    MyBatis中日誌的使用及使用log4j示例   下面介紹在MyBatis中如何使用log4j2將sql語句執行記錄輸出控制

sql語句資料庫資料是1,0 前臺顯示稽核,未稽核

//資料庫欄位為aFlag,型別為int string sqltt = " select case when aFlag = 1 then '稽核' when aFlag = 0 then '未稽核' else '帶核實' end as aFlag, appgroup,aID

SQL語句--清除資料表的所有記錄

對資料庫進行清空,要求高效、快速。以下是比較有效的解決方法。 TRUNCATE TABLE name     還有一個排重的SQL解決方法 ALTER IGNORE TABLE dict ADD UNIQUE INDEX(content); 建一個索引。 Trun

SQL語句操作·資料

一.SQL 結構化查詢語言 1.T-SQL 和 SQL的關係 T-SQL是SQL的增強版 2.SQL的組成 2.1 DML (資料操作語言) 增加,修改,刪除等資料操作 2.2 DCL 

SQL語句操作資料試題

1.在SQL Server中,下列關於資料完整性的說法錯誤的是()。 (選擇一項) A:實體完整性要求表中的每一行資料都反映不同的試題,不能存在相同的資料行 B:域完整性是隻給定列的輸入有效性 C:在輸入或刪除資料行時,引用完整性約束用來保持表之間已定義的關係 D:通過索引,唯一約束,主鍵約束或標識

MySQL(04)——SQL語句資料表內容的查詢

這個大概是使用最多的命令了。 因為平時插入資料都是程式寫好來插入的,自己不會手動插入資料; 建庫建表也不是自己操心的事; 修改資料的例子也很少; 刪除資料?這個事幾乎不幹。 剩下的也就是查詢資料了。 create table student( id int p

使用SQL語句完成資料表的去重工作

  引入問題       可能大家都遇到過這樣一種情況,一張表存在若干行資料,只是主鍵值相同,但是其它欄位都是相同的,這就是我們通常所說的資料庫重複資料,那我們是如何將這些資料刪除呢?現在我們就介紹一種方法來實現資料庫資料的去重工作。 模擬問題

SQL語句 檢索資料 oracle

一、檢索資料使用SQL語句 1.1 SQL語句執行標準 1)命令不區分大小寫 2)可以換行書寫 3)關鍵詞不能簡寫或者分隔開跨行寫 4)通常一個句子一行 5)排版可增加可讀行 6)結束語;是可以用的,執行多個語句用;分隔開 7)SQLPLus 裡必須用; 表示一個語句的結束 8)在查詢某一值

dede如何用SQL語句統計某個欄目的文章總數?

dede用SQL語句統計文章總數1、共有文章:** 篇 {dede:sql sql="select count(*) as c from dede_archives where channel=1"}·共有文章:[field:c /]篇{/dede:sql}2、共有圖集:*

C#語言和SQL Server資料庫技術_用SQL語句操作資料

第8章 用SQL語句操作資料 一.SQL簡介1.SQL能做什麼SQL語句是針對資料庫而言的一門語言,它可以建立資料庫,資料表,可以針對資料庫的資料進行增,刪,改,查等操作,可以建立檢視,儲存過程,可以賦予使用者許可權等。2.SQL和T-SQLSQL的全程是“結構化查詢語言(Structured Query L