簡體   English   中英

移調字符串

[英]Transposing Strings

我正在探索 mlb 棒球 statcast 數據,這是在球場級別。 我想總結一下板塊外觀層面的pitch。 相關欄目:

game_pk | pitcher_id | batter_id | inning | pitch_number | pitch_type | plt_apprnc_pk (unique)
----------------------------------------------------------------------------------------------
492321  |   542881   |   518466  |    2   |       1      |    FF      |   4923215428815184662
492321  |   543475   |   571448  |    1   |       2      |    SL      |   4923215434755714481
492321  |   543475   |   571448  |    1   |       1      |    FF      |   4923215434755714481
492321  |   543475   |   571448  |    1   |       3      |    FF      |   4923215434755714481

我正在處理一個查詢,僅顯示每個板外觀的一次迭代 (plt_apprnc_pk),然后是 pitch_number 列(第 1 個音高、第 2 個音高、第 3 個音高等...),顯示相應音高編號的每個音高類型。 本質上我想通過 pitch_number 轉置 pitch_type。

plt_apprnc_pk (unique)| first_pitch | second_pitch | third_pitch
----------------------------------------------------------------
  4923215434755714481 |     SL      |      FF      |     FF

我嘗試使用 Case 語句來執行此操作(即 CASE WHEN pitch_number = 1 THEN pitch_type END)。 我一直為每個 plt_apprnc_pk 獲取多行。

plt_apprnc_pk (unique)| first_pitch | second_pitch | third_pitch
------------------------------------------------------------------
  4923215434755714481 |     SL      |      NULL    |    NULL
  4923215434755714481 |    NULL     |      FF      |    NULL
  4923215434755714481 |    NULL     |      NULL    |     FF

基於 pitch_number 轉置這些字符串同時只保留唯一鍵的一次迭代的最佳方法是什么?

我嘗試使用 Case 語句來執行此操作(即 CASE WHEN pitch_number = 1 THEN pitch_type END)。 我一直為每個 plt_apprnc_pk 獲取多行。

這里的模式稱為條件聚合:

SELECT plt_apprnc_pk
     ,MAX(CASE WHEN pitch_number = 1 THEN pitch_type END) AS first_pitch 
     ,MAX(CASE WHEN pitch_number = 2 THEN pitch_type END) AS second_pitch 
     ,MAX(CASE WHEN pitch_number = 3 THEN pitch_type END) AS thrid_pitch 
     -- ...
     --,MAX(CASE WHEN pitch_number = n THEN pitch_type END) AS nth_pitch 
FROM tab
GROUP BY plt_apprnc_pk;

注意:必須事先知道最大“pitch_number”。

您可以在查詢中使用 Like this 我認為這很有用:

ISNULL(max(case when pitch_number = 1 THEN pitch_type end),0) as Default_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM