我想說,我仍在學習如何使用 SQL,所以我所問的問題可能對你們中的一些人來說很容易。
因此,假設我有一個名為 SAMPLE 的欄位和一個名為 BATCH 的欄位。此外,BATCH 包含一些 SAMPLE,並且由於某種原因,有一個標記連結到 SAMPLE 欄位 (SAMPLE_FLG)。
BATLCH_FLG 用於顯示該批次中包含的至少一個樣本被標記為 1。
您可以在此範例圖片或下表中視覺化此場景:
| sample | batch | sample_flg | batch_flg | |:-----------:|:-----:|:----------:|:---------:| | A111 - 1000 | A11 | 0 | 0 | | A111 - 200 | A11 | 0 | 0 | | A111 - 500 | A11 | 0 | 0 | | B234 - 700 | B234 | 0 | 0 | | B234 - 50 | B234 | 1 | 1 | | B234 - 75 | B234 | 0 | 0 | | C567 - 100 | C567 | 1 | 1 | | C567 - 700 | C567 | 1 | 0 | | C567 - 500 | C567 | 0 | 0 |
如何透過 SQL 查詢為 BATCH_FLG 欄位中的每個批次取得一個 1? 我的意思是,即使每個批次有多個樣本被標記為 1(範例圖像中的最後三行),我也不應該多次使用 1。
BATCH_FLG 欄位中 1 的位置並不重要。
希望你能幫助我。 謝謝。
您可以使用
ROW_NUMBER()
來產生您想要的結果。例如: