1. 程式人生 > >通過SQL case when語法實現統計SQL的縱錶轉橫向

通過SQL case when語法實現統計SQL的縱錶轉橫向

需求描述:

      有一張業績統計表(t_user_performance),表結構如下:

人員ID
user_id
業績型別
performance_type
業績金額
performance_value
時間
create_date

      其中業績型別是個列舉欄位,有三種類型(新增、簽約、跟進)。

      我需要統計買個人員每種業績型別的總業績,統計表格如下:

人員 新增業績 簽約業績 跟進業績 總業績
小A 100 200 100 400
    上面表格是一個簡單的縱錶轉橫表的例子,我們可以通過case when的SQL語句直接實現上述功能:
   select user_id,     count ( case performance_type when '新增' then '新增業績' end )as 新增業績 ,     count ( case performance_typewhen '簽約' then '簽約業績' end )as 簽約業績 ,     count ( case performance_type when '跟進' then '跟進業績' end )as 跟進業績,     count (*) as 總業績    from t_user_performance  group by user_id

相關推薦

通過SQL case when語法實現統計SQL橫向

需求描述:       有一張業績統計表(t_user_performance),表結構如下: 人員ID user_id 業績型別 performance_type 業績金額 performance_value 時間 create_date

用sum case when做分類統計sql優化

背景:本來一個頁面涉及到多個類別的統計,最初的程式碼是每一個類別做一個sql來count出數目,可想而知,最後的載入速度和體驗都是不好,能明顯感覺至少5、6秒甚至更多的響應時間 之前的程式碼: //136集團客戶故障分析統計 public List<Analysis

SQL: Case-When實現複雜排序

2018.11.18 文章目錄 前言 方法 前言 某個模組讀取SQL server時,需要按一定的優先順序讀取,比如滿足T.a = 'A’的先讀,T.b='B’的次之,T.c='C’的優先順序最低。最

SQL集萃(一) CaseWhen…Then 實現無表字段拼表格

       開發過程中,由於自己的sql經驗不足,而有些問題通過搜尋描述起來又比較複雜,或者問題與結果文不對題,因此寫該系列部落格,希望通過不斷的積累為自己和讀者提供一些參考。        業務

spark-sql case when 問題

spark 大數據 hadoop spark-sqlSELECT CASE (pmod(datediff(f0.`4168388__c_0`,‘1970-01-04‘),7)+1) WHEN ‘1‘ THEN ‘星期日‘ WHEN ‘2‘ THEN ‘星期一‘ WHEN ‘3‘ THEN ‘星期二‘ WHE

sql case when 數據類型

tab class varchar har select rom 失敗 可能 sel case when 的時候 我們不同條件可能會出不同的數據類型 舉例說明: declare @a nvarchar(10)=‘2‘ select case when @a=1 t

SQL case when

sql div 簡單 默認 nbsp The update span rom 第一種 格式 : 簡單Case函數 : 格式說明     case 列名     when 條件值1 then 選擇項1     when 條件值2 then 選項

sql case when then的使用

sql case when then的使用 base_dict 表中有如下的資料 如果檢索的是dict_type_code, 那麼可以使用case when then else end 對其再次賦值 使用case when then 檢索 SELECT (case dict

SQL case when then end根據某列資料內容在新列顯示自定義內容 SQL利用Case When Then多條件判斷SQL 語句

select ID,Username,namer=(case when(score<='50') then '實習' when(score>'50' and score<='500' ) then

SQL Case when 的使用方法

Case具有兩種格式。簡單Case函式和Case搜尋函式。 --簡單Case函式 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜尋函式 CASE WHEN sex = '1' THEN '

sql case when 的使用以及別名問題

select htlb, sum(HTZJE) as ysje,--預算金額 sum(yfje) as ljfse,--累計發生額 sum(jyje) as jyje,--結餘金額 (sum(jyje) / sum(HTZJE)) as jezb, --結餘佔比 (sum

sql-case,when的多條件組合寫法

1.decode 寫法簡介,只能寫表示式。 例:decode(表示式,條件1,值1,條件2,值2··· 預設值)  無法滿足多條件的寫法,比如,我要a-b = 0 且a !=0 用decode沒法實現 2.case when 能寫多條件 寫法一:case 表示式 wh

mysql資料庫group_concat函式內包含case when 語法時的使用

select `a`.`tdorderid`,group_concat('型別:',(case `a`.`td_type` when 'no_goods' then '無貨退款' when 'low_quantity' then '質量退款' when 'no_reaso

MySQL中使用case when 語句實現多條件查詢的方法

SELECT * FROM wqgj WHERE ((SELECT CASE 1 WHEN condition1滿足條件 THEN 1 ELSE 0 END FROM wqgj) +(SELECT

Oracle select case when 語法

假如目前我們有一張表 SQL> select * from a ; ONE TWO 1 1 1 2 3 9 2

語法解析器續:case..when..語法解析計算

  之前寫過一篇部落格,是關於如何解析類似sql之類的解析器實現參考:https://www.cnblogs.com/yougewe/p/13774289.html   之前的解析器,更多的是是做語言的翻譯轉換工作,並不涉及具體的資料運算。而且拋棄了許多上下文關聯語法處理,所以相對還是簡單的。   那麼,如果

CASE WHEN THEN ELSE +多表+子查詢 Linq三元運算

SQL: strQuery = "SELECT PRV.FACTORY, PRV.PRV_TYPE, PRV.PRV_ITEM1

SQL COUNT +Case When Then+IFNULL多條件判斷實現多條件複雜統計

基礎知識 COUNT()函式 函式返回匹配指定條件的行數。 SQL COUNT() 語法 SQL COUNT(column_name) 語法 COUNT(column_name) 函式返回指定列的值的數目(NULL 不計入): SELECT C

語法SQL中的case when then else end用法-解決一個字段根據條件取不同值

where 運行 pos 功能 enter cnblogs logs wro img Case具有兩種格式。簡單Case函數和Case搜索函數。 --簡單Case函數 CASE sex WHEN ‘1‘ THEN ‘男‘ WHEN

SQLcase when then用法(用於分類統計)

char purge 格式 但是 統計 spa 比較 log 永遠 ase具有兩種格式。簡單case函數和case搜索函數。 --簡單case函數 case sex when ‘1‘ then ‘男‘ when ‘2‘ then ‘女’