Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara membuat kolom variabel dummy untuk ribuan kategori di Google BigQuery?

Anda dapat menggunakan "teknik" di bawah ini

Pertama jalankan kueri #1. Ini menghasilkan kueri (kueri #2) yang perlu Anda jalankan untuk mendapatkan hasil yang Anda butuhkan. Harap, tetap pertimbangkan komentar Mosha sebelum menjadi "liar" dengan ribuan kategori :o)

Pertanyaan #1:

SELECT 'select UserID, ' + 
   GROUP_CONCAT_UNQUOTED(
    'sum(if(category = "' + STRING(category) + '", 1, 0)) as ' + STRING(category)
   ) 
   + ' from YourTable group by UserID'
FROM (
  SELECT category 
  FROM YourTable  
  GROUP BY category
)

Hasilnya akan seperti di bawah ini - Query #2

SELECT
  UserID,
  SUM(IF(category = "A", 1, 0)) AS A,
  SUM(IF(category = "B", 1, 0)) AS B,
  SUM(IF(category = "C", 1, 0)) AS C
FROM
  YourTable
GROUP BY
  UserID

tentu saja untuk tiga kategori - Anda bisa melakukannya secara manual, tetapi untuk ribuan itu pasti akan membuat hari untuk Anda!!

Hasil kueri #2 akan terlihat seperti yang Anda harapkan:

UserID  A   B   C    
1       1   1   0    
2       0   0   1    
3       1   1   1    



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktifkan Logging dari Kueri Lambat (Log Kueri Lambat) di Database MySQL

  2. Apakah mungkin untuk GROUP BY beberapa kolom menggunakan MySQL?

  3. Bagaimana cara mengatur item yang dipilih dalam kotak drop-down

  4. menggunakan (-) tanda hubung di nama tabel mysql

  5. Tipe data MySQL:Ketahui yang digunakan dan caranya