Saya ingin mengatakan bahawa saya masih belajar cara menggunakan SQL, jadi soalan yang saya ajukan mungkin mudah bagi sesetengah daripada anda.
Jadi, katakan saya mempunyai lajur yang dipanggil SAMPLE dan lajur yang dipanggil BATCH. Selain itu, BATCH mengandungi beberapa SAMPLE dan atas sebab tertentu terdapat teg yang dipautkan ke lajur SAMPLE (SAMPLE_FLG).
BATLCH_FLG digunakan untuk menunjukkan bahawa sekurang-kurangnya satu sampel yang terkandung dalam kumpulan ditandakan sebagai 1.
Anda boleh memvisualisasikan senario ini dalam imej contoh ini atau dalam jadual di bawah:
| 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 |
Bagaimana untuk mendapatkan 1 untuk setiap kelompok dalam lajur BATCH_FLG melalui pertanyaan SQL? Apa yang saya maksudkan ialah saya tidak sepatutnya menggunakan 1 beberapa kali walaupun terdapat beberapa sampel setiap kelompok yang dilabelkan 1 (tiga baris terakhir dalam imej contoh).
Kedudukan 1 dalam lajur
BATCH_FLG tidak penting.Semoga anda boleh membantu saya. Terima kasih. 🎜
Anda boleh menggunakan
ROW_NUMBER()
untuk menghasilkan hasil yang anda inginkan. Contohnya: