行列互換問題

2021-10-07 16:57:16 字數 2090 閱讀 9040

最近面試碰到了乙個行列互換的問題,要求如下 :

select 支付渠道,

max(case 訂單業務線 when '快車' then 訂單金額 else null end) 快車訂單金額,

max(case 訂單業務線 when '順風車' then 訂單金額 else null end) 順風車訂單金額,

max(case 訂單業務線 when '計程車' then 訂單金額 else null end) 計程車訂單金額

from order_base group by 支付渠道

select 支付渠道,

max(case when 訂單業務線='快車' then 訂單金額 else null end) 快車訂單金額,

max(case when 訂單業務線='順風車' then 訂單金額 else null end) 順風車訂單金額,

max(case when 訂單業務線='計程車' then 訂單金額 else null end) 計程車訂單金額

from order_base group by 支付渠道

大致記住: 

group by的內容就是第一列的內容,也是要select的第一列內容,後面陸續是第二列,第三列的內容,注意這個順序

原始表: 

結果表: 

SQL(行列互換)

有乙個sql題在面試中出現的概率極高,最近有學生出去面試仍然會遇到這樣的題目,在這裡跟大家分享一下。題目 資料庫中有一張如下所示的表,表名為sales。年 季度銷售量 1991111 1991212 1991313 1991414 1992121 1992222 1992323 1992424 要求...

SQL行列互換

有乙個sql題在面試中出現的概率極高,在這裡跟大家分享一下。題目 資料庫中有一張如下所示的表,表名為sales。年 季度銷售量 1991111 1991212 1991313 1991414 1992121 1992222 1992323 1992424 要求 寫乙個sql語句查詢出如下所示的結果。...

SQL行列互換

題目 資料庫中有一張如下所示的表,表名為sales。年 季度銷售量 1991111 1991212 1991313 1991414 1992121 1992222 1992323 1992424 要求 寫乙個sql語句查詢出如下所示的結果。年 一季度二季度 三季度四季度 1991 1112 1314...