基礎知識
COUNT()函數
函數返回匹配指定條件的行數。
SQL COUNT() 語法
- SQL COUNT(column_name) 語法
COUNT(column_name) 函數返回指定列的值的數目(NULL 不計入):SELECT COUNT(column_name) FROM table_nam
- SQL COUNT(*) 語法
COUNT(*) 函數返回表中的記錄數:SELECT COUNT(*) FROM table_name
- SQL COUNT(DISTINCT column_name) 語法
COUNT(DISTINCT column_name) 函數返回指定列的不同值的數目:SELECT COUNT(DISTINCT column_name) FROM table_name
Case When Then
Case具有兩種格式。簡單Case函數和Case搜索函數。
第一種 格式 : 簡單Case函數 :
格式說明
case 列名
when 條件值1 then 選擇項1
when 條件值2 then 選項2…….
else 默認值 end
例:
select case job_level when '1' then '1111' when '2' then '222' when '3' then '333' else 'eee' end from dbo.employee
第二種 格式 :Case搜索函數
格式說明
case
when 列名= 條件值1 then 選擇項1
when 列名=條件值2 then 選項2…….
else 默認值 end
例如:
update employee set e_wage = case when job_level = '1' then e_wage*1 when job_level = '2' then e_wage*2 when job_level = '3' then e_wage*3 else e_wage*4 end
IFNULL函數用法
MySQL IFNULL函數是MySQL控制流函數之一,它接受兩個參數,如果不是NULL,則返回第一個參數。 否則,IFNULL函數返回第二個參數。
兩個參數可以是文字值或表達式。
以下說明了IFNULL函數的語法:IFNULL(expression_1,expression_2);
如果expression_1不為NULL,則IFNULL函數返回expression_1; 否則返回expression_2的結果。
例
復雜統計
我們有一個復雜的統計,統計出各單位以各種方式辦理的案件的案件
danban形式CHECKOPTION=’danban’,單位id為UNDERTAKEUNITID
huiban形式包含zhuban和xieban
COUNDERTAKEUNITID為xieban單位id
UNDERTAKEUNITID為zhuban的id
fenban形式c.CHECKOPTION=’fenban’ ,單位id為UNDERTAKEUNITID
我們要統計出
辦理單位統計
SELECT c.unitid,c.unit, COUNT(CASE WHEN c.CHECKOPTION='danban' then 1 else NULL END) as danban, COUNT(CASE WHEN c.CHECKOPTION='huiban' and c.COUNDERTAKEUNITID is not NULL then 1 else NULL END) as xieban, COUNT(CASE WHEN c.CHECKOPTION='huiban' and c.UNDERTAKEUNITID is not NULL then 1 else NULL END) as zhuban, COUNT(CASE WHEN c.CHECKOPTION='fenban' then 1 else NULL END) as fenban from ( SELECT a.UNDERTAKEUNIT,a.UNDERTAKEUNITID,a.COUNDERTAKEUNIT,a.COUNDERTAKEUNITID,a.CHECKOPTION, IFNULL(a.COUNDERTAKEUNITID,a.UNDERTAKEUNITID) as unitid, IFNULL(a.COUNDERTAKEUNIT,a.UNDERTAKEUNIT)as unit FROM unit_undertakeinfo a ) c GROUP BY c.unitid
轉載自:https://blog.csdn.net/u010121228/article/details/79895076?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.control